Skip to content

Deferral Behavior

Kevin edited this page Oct 17, 2024 · 9 revisions

If there is no actively logged in user (the system is at the login window) then the super workflow automatically downloads and installs any macOS updates requiring a restart. Conversely, if a user is actively logged in and the super workflow has successfully downloaded an update that requires a restart, then the default behavior is to ask the user if they want to restart now or defer until later.

Regardless of the user being logged in or not, there are a variety of reasons why super may automatically defer the update workflow until a later time. For example, if super detects an error then it automatically defers until later. More commonly though, an active user is choosing to defer an update restart until later.

Also, because the deferral options do not specify a weekday or time of day, the --schedule-workflow-active option can be used to ensure that deferred dialogs and notifications fall within your specified times.

Default Deferral Timer

The number of minutes to defer until the next update workflow attempt if a user choses not restart.

Command option example:
--deferral-timer-default=120

Command option disable example:
--deferral-timer-default=X

Configuration profile example:
<key>DeferralTimerDefault</key>
<string>120</string>

Using this option overrides the default deferral time which is set to 60 minutes (1 hour). Times less than 2 minutes or more than 10080 minutes (1 week) are rounded accordingly. Also, if any days or date deadline options are sooner than the default deferral timer then it's reduced to match the closest deadline.

Setting this option also affects the focus deferral timer when any focus deadlines are enabled but you have not specified the --deferral-timer-focus option. Further, setting this option also affects the error deferral time unless you specify the --deferral-timer-error option. Finally, this deferral timer is automatically selected if you also specify a dialog timeout option.

Menu Deferral Timer

Display a deferral time pop-up menu in the non-deadline restart dialog that allows the user to override the --deferral-timer-default timer.

Command option example:
--deferral-timer-menu=5,30,60,120

Command option disable example:
--deferral-timer-menu=X

Configuration profile example:
<key>DeferralTimerMenu</key>
<string>5,30,60,120</string>

The time selections are specified with one or more number of minutes that are comma separated with no spaces. Times less than 2 minutes or more than 10080 minutes (1 week) are rounded accordingly. Also, if any days or date deadline options are sooner than any menu deferral timer item then it's reduced to match the closest deadline.

The first number in the list is the default selection for the menu, thus it's automatically selected if the user doesn't choose another time from the menu or you also specify a dialog timeout option.

The deferral menu in an update dialog

The deferral menu in an update dialog

Focus Deferral Timer

The number of minutes to defer automatically if the user has enabled Focus/Do Not Disturb or when a process has requested that the display not go to sleep (for example, during an active meeting).

Command option example:
--deferral-timer-focus=120

Command option disable example:
--deferral-timer-focus=X

Configuration profile example:
<key>DeferralTimerFocus</key>
<string>120</string>

With this option you must also specify at least one of the deadline focus options; --deadline-count-focus, --deadline-days-focus, or --deadline-date-focus. Times less than 2 minutes or more than 10080 minutes (1 week) are rounded accordingly. Also, if any days or date deadline options are sooner than the focus deferral timer then it's reduced to match the closest deadline.

Error Deferral Timer

The number of minutes to defer if super detects an error in the workflow (for example, network or MDM connectivity issues).

Command option example:
--deferral-timer-error=120

Command option disable example:
--deferral-timer-error=X

Configuration profile example:
<key>DeferralTimerError</key>
<string>120</string>

Using this option overrides the default error deferral time which is set to the same value as the --deferral-timer-default option. Times less than 2 minutes or more than 10080 minutes (1 week) are rounded accordingly.

Workflow Relaunch Deferral Timer

The number of minutes to defer if no software updates are available or allowed. Enabling this option results in super acting as a permanent agent that checks for software updates on a regular basis.

Command option example:
--deferral-timer-workflow-relaunch=1440

Command option disable example:
--deferral-timer-workflow-relaunch=X

Configuration profile example:
<key>DeferralTimerWorkflowRelaunch</key>
<string>1440</string>

Using this option overrides the default workflow relaunch time which is set to 360 minutes (6 hours). Times less than 2 minutes or more than 43200 minutes (30 days) are rounded accordingly.

Logically, this option can not be used along with the --skip-updates option.

Reset All Deferral Timers

Reset all locally set deferral timer options to their default setting.

Command option example:
--deferral-timer-reset-all

This option can not be set via a MDM configuration profile. However, any other deferral options that are specified via a super MDM configuration profile remain in effect.

Clone this wiki locally