Configuration ManagerTroubleshooting

Configuration Manager deployments stuck on maintenance windows: ServiceWindowManager.log

Required deployments past their deadline but not installing? Check what windows the client sees, run time versus window length, window types and UTC, then prove the fix.

Maintenance windows are the main reason a required deployment in Configuration Manager (often still called SCCM) sits past its deadline and never installs. The client isn't broken: it's waiting for a window that is too short, of the wrong type, or never arrives. In this post I'll show how to see the windows exactly as the client sees them, find the rule that's blocking the deployment, and fix it without opening the floodgates.

Errors this guide fixes

  • No current or future service window exists to install software updatesMonitoring › Deployments (deployment status)
  • 0x87D00667Monitoring › Deployments (deployment status)
  • No current service window available to run updates assignmentUpdatesDeployment.log+1 more guide
  • will be retried once the service window is availableUpdatesDeployment.log
How this guide is organized: Symptoms → Why it happens → How to fix it → Verify the fix → Prevent it next timeFlow diagram of the article's sections in reading order: 1. Symptoms. 2. Why it happens. 3. How to fix it (6 steps: See the windows the client sees; Read the client logs around the deadline; Compare run time with window length; Fix type conflicts; Allow urgent work outside the window; Re-check UTC windows after daylight saving changes). 4. Verify the fix. 5. Prevent it next time. Toolbox: 0x87D00667, UpdatesDeployment.log, ServiceWindowManager.log, Monitoring › Deployments, Properties › Maintenance Windows.1Symptoms2Why it happens3How to fix it4Verify the fix5Prevent it nexttime1See thewindows the c…2Read the clientlogs around t…3Compare runtime with win…4Fix typeconflicts5Allow urgentwork outside…6Re-check UTCwindows afte…TOOLBOX0x87D00667UpdatesDeployment.logServiceWindowManager.logMonitoring › DeploymentsProperties › Maintenance WindowsHow this guide is organized: Symptoms → Why it happens → How to fix it → Verify the fix → Prevent it next timeFlow diagram of the article's sections in reading order: 1. Symptoms. 2. Why it happens. 3. How to fix it (6 steps: See the windows the client sees; Read the client logs around the deadline; Compare run time with window length; Fix type conflicts; Allow urgent work outside the window; Re-check UTC windows after daylight saving changes). 4. Verify the fix. 5. Prevent it next time. Toolbox: 0x87D00667, UpdatesDeployment.log, ServiceWindowManager.log, Monitoring › Deployments, Properties › Maintenance Windows.1Symptoms2Why it happens3How to fix it1See the windows the client sees2Read the client logs around the deadline3Compare run time with window length4Fix type conflicts5Allow urgent work outside the window6Re-check UTC windows after daylight savingchanges4Verify the fix5Prevent it next timeTOOLBOX0x87D00667UpdatesDeployment.logServiceWindowManager.logMonitoring › DeploymentsProperties › Maintenance Windows
At a glance: how this guide is organized · 6 fix steps · 5 key tools

Symptoms#

  • A required application, package, task sequence or software update deployment passes its deadline, but nothing installs.
  • Deployment status under Monitoring › Deployments reports No current or future service window exists to install software updates; admins report the code 0x87D00667 with it, even for application deployments.
  • UpdatesDeployment.log on the client keeps postponing the assignment:
Text
No current service window available to run updates assignment with time required = 3600
This assignment ({GUID}) will be retried once the service window is available.
  • Software Center's Installation status tab shows the next maintenance window far in the future, or the deployment stays scheduled.

Why it happens#

Why a required deployment waits for its maintenance windowDoes CCM_ServiceWindow list a window of type 1, 4 or 5? if No: Look beyond maintenance windows (The device has no window, so the cause lies elsewhere.); if Yes: Does one window of the needed type outlast the maximum run time? if No: Does a short software updates window hide a long All deployments one? if Yes: Lengthen it or change the client setting (Allow updates in All deployments windows.); if No: Lengthen the window or fix the run time (Separate windows don't add up; never shrink run time to fit.); if Yes: Is it a UTC window after a daylight saving change? if Yes: Clear the UTC option (UTC windows can open an hour early or late.); if No: Wait, or allow install outside the window (For urgent work only, in a separate, tightly scoped deployment.)Does CCM_ServiceWindow lista window of type 1, 4 or 5?NOTELook beyondmaintenancewindowsThe device has nowindow, so thecause lies elsewhere.NoDoes one window of the neededtype outlast the maximum runtime?Does a short software updateswindow hide a long Alldeployments one?FIXLengthen it orchange the clientsettingAllow updates in Alldeploymentswindows.YesFIXLengthen thewindow or fix therun timeSeparate windowsdon't add up; nevershrink run time to fit.NoNoIs it a UTC window after adaylight saving change?FIXClear the UTCoptionUTC windows canopen an hour early orlate.YesNOTEWait, or allowinstall outside thewindowFor urgent work only,in a separate, tightlyscoped deployment.NoYesYesWhy a required deployment waits for its maintenance windowDoes CCM_ServiceWindow list a window of type 1, 4 or 5? if No: Look beyond maintenance windows (The device has no window, so the cause lies elsewhere.); if Yes: Does one window of the needed type outlast the maximum run time? if No: Does a short software updates window hide a long All deployments one? if Yes: Lengthen it or change the client setting (Allow updates in All deployments windows.); if No: Lengthen the window or fix the run time (Separate windows don't add up; never shrink run time to fit.); if Yes: Is it a UTC window after a daylight saving change? if Yes: Clear the UTC option (UTC windows can open an hour early or late.); if No: Wait, or allow install outside the window (For urgent work only, in a separate, tightly scoped deployment.)Does CCM_ServiceWindow list a window oftype 1, 4 or 5?NoNOTELook beyond maintenance windowsThe device has no window, so the cause lieselsewhere.YesDoes one window of the needed typeoutlast the maximum run time?NoDoes a short software updates windowhide a long All deployments one?YesFIXLengthen it or change the clientsettingAllow updates in All deployments windows.NoFIXLengthen the window or fix the runtimeSeparate windows don't add up; nevershrink run time to fit.YesIs it a UTC window after a daylightsaving change?YesFIXClear the UTC optionUTC windows can open an hour early or late.NoNOTEWait, or allow install outside thewindowFor urgent work only, in a separate, tightlyscoped deployment.
Figure 1 · Decision tree Why a required deployment waits for its maintenance window. Start from the windows the client itself reports, then compare type, length and time zone to find what holds the deployment back.

Every maintenance window on every collection a device belongs to applies to that device, and Microsoft documents a few rules that decide whether a deployment may start:

  • The run time must fit. A deployment runs only if its maximum allowed run time doesn't exceed the window's duration. If it can't run, the client tries again in the next window that has enough time.
  • Separate windows don't add up. Overlapping windows merge into one long window, but windows that don't overlap stay independent, so two 60-minute windows never fit a 120-minute deployment.
  • Type matters. A window applies to All deployments, Software updates or Task sequences. By default, when a device has a software update window, updates install only in that window and the client ignores its All deployments windows; the same applies to task sequence windows.
  • Restarts are held too. Restarts caused by a deployment aren't allowed outside a window unless you allow them on the deployment.
  • Time zones shift. With the UTC option, every device uses the same absolute time. Microsoft also documents that UTC windows calculate local time from the bias that was active on the window's effective date, so they can open an hour early or late after a daylight saving change.

Business hours that users set in Software Center are a separate mechanism: a required application that reaches its deadline during the user's non-business hours installs then.

How to fix it#

1. See the windows the client sees#

Don't guess from collection names: ask the client. The CCM_ServiceWindow class lists upcoming windows with their start, end, duration (in seconds) and type:

PowerShell
Get-CimInstance -Namespace root\ccm\ClientSDK -ClassName CCM_ServiceWindow |
    Sort-Object StartTime | Select-Object StartTime, EndTime, Duration, Type
TypeMeaning
1All deployments window
2Program window
3Reboot required window
4Software updates window
5Task sequences window
6Non-working hours (Software Center business hours)

No rows of types 1, 4 or 5 means the device has no maintenance window at all, so the cause lies elsewhere. A window of the right type that's shorter than the deployment's run time is your culprit.

2. Read the client logs around the deadline#

In C:\Windows\CCM\Logs, ServiceWindowManager.log records every check the client makes: the run time a deployment asked for, the window type it needs and whether a suitable window exists. Match its timestamps with UpdatesDeployment.log for software updates, or execmgr.log for packages and task sequences.

3. Compare run time with window length#

  • Applications: the deployment type's Maximum allowed run time (minutes) on its User Experience tab; the default is 120 minutes, which already exceeds a one-hour window.
  • Software updates: each update's maximum run time, shown in its properties. Feature updates and large cumulative updates need long windows.
  • Task sequences: the maximum allowed run time in the task sequence properties.

Either lengthen the window (from five minutes up to 24 hours) or set a realistic run time. Don't shrink the run time below what the install really needs just to make it fit: the client uses it to decide whether the job fits, so an underestimate lets long installs run past the end of the window.

4. Fix type conflicts#

Open the collection properties (Assets and Compliance › Device Collections › Properties › Maintenance Windows) for every collection the device is in, and check the Apply this schedule to value. If a short software updates window hides a long All deployments window, either lengthen the software updates window or enable the client setting Enable installation of software updates in "All deployments" maintenance window when "Software Update" maintenance window is available in the Software updates group. You can also review windows in PowerShell from a console session:

PowerShell
Get-CMMaintenanceWindow -CollectionName 'Servers - Patch Group A' |
    Select-Object Name, Description, IsEnabled, IsGMT

5. Allow urgent work outside the window#

For a zero-day update or a critical application, use the deployment's deadline behavior options on its User Experience page to allow software installation, and if needed the system restart, outside the maintenance window. Use a separate, tightly scoped deployment for this so routine patching keeps respecting the windows.

6. Re-check UTC windows after daylight saving changes#

If a UTC window suddenly opens an hour early or late, the effective-date bias described above is the likely reason. Where windows must follow local business time, clear the UTC option so each device uses its own time zone, and review UTC windows after each daylight saving change.

Verify the fix#

  1. Run Machine Policy Retrieval & Evaluation Cycle on a test device, then query CCM_ServiceWindow again: the window has the type and duration you expect.
  2. Software Center's Installation status tab shows the correct next maintenance window.
  3. When the window opens, ServiceWindowManager.log finds a suitable window and the install starts (UpdatesDeployment.log, AppEnforce.log or execmgr.log).
  4. Deployment status moves from the service-window error to success or compliant.

Prevent it next time#

  • Size windows for the slowest item plus its restart, not for the average.
  • Keep one window type per purpose and document which collections carry windows; overlapping memberships surprise people.
  • Since version 2207, monthly windows can be offset from Patch Tuesday (for example two days after the second Tuesday); the last-week-of-month scheduling issue was fixed in 2503.
  • You can't add maintenance windows to the All Systems collection, so set them on purpose-built collections.
  • Pair windows with ring-based patching: see automatic deployment rules for Patch Tuesday and, for scan or install errors, updates not installing from Configuration Manager.

References#

Written and checked against current Microsoft Learn documentation. Test changes with a pilot group before rolling them out to everyone, and if an admin center path has moved since, search for the setting name instead.

Spotted a mistake, or did this fix work differently for you? Email me or message me on LinkedIn — corrections are credited in the article.

Written by

Omer Eltayeb

Intune Subject Matter Expert in Cairo, Egypt, former Microsoft Cloud Solutions Architect, Microsoft Certified Trainer and Microsoft Innovative Educator Expert (2024–26) and Microsoft Elevate Educator Expert (2026–27). I share practical, step-by-step guides, study plans, scripts and toolkits for Microsoft Intune, Configuration Manager, Microsoft Entra ID, Microsoft Defender, Exchange and Microsoft 365 with the community.

Microsoft Certified Trainer (MCT) 2026Microsoft Innovative Educator Expert 2025–2026Microsoft Elevate Educator Expert 2026–2027ISC2 Certified Information Systems Security Professional (CISSP)Microsoft 365 Certified: Enterprise Administrator Expert (MS-102)