Hi all,
I'm looking for some clarification on the expected behaviour of allowGracePeriods and gracePeriodInstallDelay when using Nudge 2.1.3 with SOFA and:
requiredMinimumOSVersion = latest-minor
What we're trying to achieve
Our goal is for every user to receive the same 14-day onboarding/grace period from the point Nudge is deployed, regardless of how old the Mac is or when the current macOS update was released.
For example:
• User A receives Nudge today on a Mac that has never had Nudge installed.
• User B receives Nudge today on an existing Mac that is several months old.
• User C receives Nudge today after being migrated to a new Nudge deployment.
In all three cases, we'd like the user to receive a fresh 14 days from the date Nudge is deployed, rather than inheriting a deadline that has already partially elapsed because the macOS update was released some time ago.
We're therefore using:
allowGracePeriods = true
gracePeriodInstallDelay = 336
gracePeriodPath = /Library/Application Support/Nudge/gracePeriod
with a marker file created at deployment time.
Configuration
requiredMinimumOSVersion
latest-minor
allowGracePeriods
gracePeriodInstallDelay
336
gracePeriodLaunchDelay
0
gracePeriodPath
/Library/Application Support/Nudge/gracePeriod
standardMinorUpdateSLA
14
nonActivelyExploitedCVEsMinorUpdateSLA
14
activelyExploitedCVEsMinorUpdateSLA
14
What I've observed
When I first tested this configuration, it appeared to work as expected. I saw log entries along the lines of:
Device permitted for gracePeriodInstallDelay
setting date from:
...
to:
...
This led me to believe that Nudge was taking the grace-period marker timestamp and extending the required installation date accordingly.
However, after doing considerably more testing, I can no longer reproduce this behaviour.
I've tested:
• Existing Mac running Nudge 2.1.3.81860
• Freshly imaged Mac
• Configuration profile deployed before the first Nudge launch
• Grace-period marker created before the first Nudge launch
• Fresh user state
• Fresh managed preferences
• Nudge stopped before testing
• Grace-period marker recreated multiple times
The profile is definitely installed and contains:
allowGracePeriods = true
gracePeriodInstallDelay = 336
gracePeriodPath = /Library/Application Support/Nudge/gracePeriod
The marker file also definitely exists and has a fresh timestamp before Nudge launches.
What Nudge is doing
On both machines, Nudge immediately evaluates SOFA and calculates a deadline from the SOFA feed.
For example:
Setting requiredInstallationDate via SOFA to 2026-08-20 00:00:00 +0000
SOFA Matched OS Version: 15.7.9
New Nudge event detected - resetting all deferral values
On another machine:
Setting requiredInstallationDate via SOFA to 2026-08-31 00:00:00 +0000
SOFA Matched OS Version: 26.6.2
What I don't see is:
Device permitted for gracePeriodInstallDelay
or:
Device within gracePeriodLaunchDelay
I also can't find any evidence in the logs that the timestamp of the grace-period marker is influencing the SOFA-derived deadline.
Searching the Nudge logs for grace returns nothing.
My question
When using:
requiredMinimumOSVersion = latest-minor
with SOFA-driven deadlines, should gracePeriodInstallDelay modify the SOFA-derived requiredInstallationDate for a newly deployed Nudge installation?
In other words, should a newly deployed Nudge installation be able to receive a fresh 14-day grace period from the deployment/marker timestamp, even if SOFA has calculated an earlier deadline based on the macOS update release date?
Or does the SOFA-derived requiredInstallationDate take precedence, effectively preventing the grace-period logic from extending the deadline in this scenario?
I noticed the Nudge changelog/documentation indicates that the grace-period logic is evaluated after the SOFA assessment, so I'm particularly interested in understanding how those two calculations are expected to interact.
If grace periods are expected to work with latest-minor and SOFA, what log entries should I expect to see that confirm Nudge has recognised and applied the grace-period marker?
Thanks in advance — I'm mainly trying to establish whether this is expected behaviour, a configuration issue, or potentially a change/regression in the 2.1.x releases.
Hi all,
I'm looking for some clarification on the expected behaviour of allowGracePeriods and gracePeriodInstallDelay when using Nudge 2.1.3 with SOFA and:
requiredMinimumOSVersion = latest-minor
What we're trying to achieve
Our goal is for every user to receive the same 14-day onboarding/grace period from the point Nudge is deployed, regardless of how old the Mac is or when the current macOS update was released.
For example:
• User A receives Nudge today on a Mac that has never had Nudge installed.
• User B receives Nudge today on an existing Mac that is several months old.
• User C receives Nudge today after being migrated to a new Nudge deployment.
In all three cases, we'd like the user to receive a fresh 14 days from the date Nudge is deployed, rather than inheriting a deadline that has already partially elapsed because the macOS update was released some time ago.
We're therefore using:
allowGracePeriods = true
gracePeriodInstallDelay = 336
gracePeriodPath = /Library/Application Support/Nudge/gracePeriod
with a marker file created at deployment time.
Configuration
requiredMinimumOSVersion
latest-minor
allowGracePeriods
gracePeriodInstallDelay
336
gracePeriodLaunchDelay
0
gracePeriodPath
/Library/Application Support/Nudge/gracePeriod
standardMinorUpdateSLA
14
nonActivelyExploitedCVEsMinorUpdateSLA
14
activelyExploitedCVEsMinorUpdateSLA
14
What I've observed
When I first tested this configuration, it appeared to work as expected. I saw log entries along the lines of:
Device permitted for gracePeriodInstallDelay
setting date from:
...
to:
...
This led me to believe that Nudge was taking the grace-period marker timestamp and extending the required installation date accordingly.
However, after doing considerably more testing, I can no longer reproduce this behaviour.
I've tested:
• Existing Mac running Nudge 2.1.3.81860
• Freshly imaged Mac
• Configuration profile deployed before the first Nudge launch
• Grace-period marker created before the first Nudge launch
• Fresh user state
• Fresh managed preferences
• Nudge stopped before testing
• Grace-period marker recreated multiple times
The profile is definitely installed and contains:
allowGracePeriods = true
gracePeriodInstallDelay = 336
gracePeriodPath = /Library/Application Support/Nudge/gracePeriod
The marker file also definitely exists and has a fresh timestamp before Nudge launches.
What Nudge is doing
On both machines, Nudge immediately evaluates SOFA and calculates a deadline from the SOFA feed.
For example:
Setting requiredInstallationDate via SOFA to 2026-08-20 00:00:00 +0000
SOFA Matched OS Version: 15.7.9
New Nudge event detected - resetting all deferral values
On another machine:
Setting requiredInstallationDate via SOFA to 2026-08-31 00:00:00 +0000
SOFA Matched OS Version: 26.6.2
What I don't see is:
Device permitted for gracePeriodInstallDelay
or:
Device within gracePeriodLaunchDelay
I also can't find any evidence in the logs that the timestamp of the grace-period marker is influencing the SOFA-derived deadline.
Searching the Nudge logs for grace returns nothing.
My question
When using:
requiredMinimumOSVersion = latest-minor
with SOFA-driven deadlines, should gracePeriodInstallDelay modify the SOFA-derived requiredInstallationDate for a newly deployed Nudge installation?
In other words, should a newly deployed Nudge installation be able to receive a fresh 14-day grace period from the deployment/marker timestamp, even if SOFA has calculated an earlier deadline based on the macOS update release date?
Or does the SOFA-derived requiredInstallationDate take precedence, effectively preventing the grace-period logic from extending the deadline in this scenario?
I noticed the Nudge changelog/documentation indicates that the grace-period logic is evaluated after the SOFA assessment, so I'm particularly interested in understanding how those two calculations are expected to interact.
If grace periods are expected to work with latest-minor and SOFA, what log entries should I expect to see that confirm Nudge has recognised and applied the grace-period marker?
Thanks in advance — I'm mainly trying to establish whether this is expected behaviour, a configuration issue, or potentially a change/regression in the 2.1.x releases.