-
Notifications
You must be signed in to change notification settings - Fork 104
Deferral Behavior
If there is no actively logged-in user (the system is at the login window), then the default 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, keep in mind that these deferral options do not specify when the super workflow is started or active. As such, there are a variety of other workflow scheduling options that can be used to ensure that deferred dialogs and notifications fall within your specified times. If a deferral time is not possible given any other days deadlines, date deadlines, workflow schedule options, or scheduled install then the deferral time is adjusted to match the closest appropriate time. These automatic adjustments always show as warnings in the super.log.
If super is installed during new system provisioning then it automatically defers the start of any workflow until later.
Specifically, super looks for the macOS Setup Assistant "done file". If that file is not present on the system then the super workflow will automatically defer based on the --deferral-timer-default option or the default of 60 minutes.
In other words, it's safe to install super during macOS onboarding (including Automatic Device Enrollment workflows) so that it's ready for use on new systems as soon as possible.
The super workflow respects built-in system managed software update deferrals. In other words, super does not download or install (but it does report to the super.log) software updates that have been deferred due to managed software update settings that are enforced via MDM configuration profiles. In this case, the super workflow assumes that there is no available update target and will automatically defer based on the --deferral-timer-workflow-relaunch option or the default workflow relaunch time which is set to 360 minutes (6 hours).
If the workflow target is a macOS minor update (not a macOS major upgrade) and built-in system automatic macOS update downloads are enabled (either locally via System Settings or via MDM configuration profiles), then the super workflow will automatically defer until the system has automatically downloaded the macOS update. In this case, the super workflow will automatically defer based on the --deferral-timer-default option or the default of 60 minutes.
Further, the built-in system automatic macOS update download includes a mandatory incremental rollout mechanism that often prevents the system from downloading the update until a few days after its initial release. In other words, the super workflow may have to wait several days for the system to choose when to automatically download new macOS updates.
Keep in mind, there are several other workflow options that may override this automatic deferral behavior, including the --workflow-install-now option, any scheduled installations, and any pending days deadlines or date deadlines that are within 24 hours of ending.
The number of minutes to defer until the next update or install workflow attempt.
Command option example:
--deferral-timer-default=120
Command option disable example:
--deferral-timer-default=X
Configuration profile example:
<key>DeferralTimerDefault</key>
<string>120</string>
The most visible deferral event is when the user is presented with a dialog that allows them to defer a restart or installation. However, the default deferral timer is also used for all other active workflow deferral events unless specified by another specific deferral timer option.
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.
The default deferral button in an update dialog

Display a pop-up menu in the non-deadline restart or install dialog that allows the user to select from a pre-defined list of deferral times.
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 numbers of minutes that are comma separated with no spaces. Times less than 2 minutes or more than 10080 minutes (1 week) are rounded accordingly. Further, regardless of the order you specify in this option, the times are always resorted from shortest to longest.
Finally, if an inactive dialog times out due to a dialog timeout option, then the default deferral timer is always selected.
The deferral menu in an update dialog

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.
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.
The number of minutes to defer if there is currently no workflow target (like a pending macOS update or upgrade).
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.
Reset all locally set deferral timer options to their default setting.
Command option example:
--deferral-timer-reset-all
This option cannot be set via a MDM configuration profile. However, any other deferral options that are specified via a super MDM configuration profile remain in effect.