[{"data":1,"prerenderedAt":720},["ShallowReactive",2],{"\u002Fblog\u002Fhow-to-set-up-maintenance-windows":3},{"id":4,"title":5,"author":6,"body":8,"category":674,"date":675,"description":676,"extension":677,"faq":678,"howTo":691,"image":713,"lastUpdated":675,"meta":714,"navigation":458,"path":715,"readingTime":716,"seo":717,"stem":718,"__hash__":719},"blog\u002Fblog\u002Fhow-to-set-up-maintenance-windows.md","How to Set Up Maintenance Windows: Planning, Execution, and Monitoring (Complete Guide)",{"name":7},"Theo Cummings",{"type":9,"value":10,"toc":660},"minimark",[11,15,18,23,26,33,39,45,49,52,57,117,123,129,133,136,141,144,147,166,172,181,185,188,193,252,257,311,316,334,342,346,349,354,392,397,411,416,435,439,442,447,485,488,492,495,509,515,521,532,536,542,548,554,560,566,572,576,579,590,593,606,610],[12,13,14],"p",{},"Maintenance windows fail in two predictable ways: the monitoring tool generates false alerts because nobody suppressed it, or customers are surprised because nobody told them. Both are avoidable with the same process - plan, communicate, configure, execute, verify.",[12,16,17],{},"This guide covers each step in sequence, including the specific mistakes that turn routine maintenance into incidents.",[19,20,22],"h2",{"id":21},"step-1-define-scope-duration-and-rollback-criteria","Step 1: Define scope, duration, and rollback criteria",[12,24,25],{},"Before touching anything operational, write down three things:",[12,27,28,32],{},[29,30,31],"strong",{},"Scope:"," Every service component, API endpoint, database, or dependency that will be unavailable or degraded during the window. Be specific. \"The app\" is not a scope definition. \"The API will be unavailable; the dashboard will return a maintenance page; background job processing will be paused\" is.",[12,34,35,38],{},[29,36,37],{},"Duration:"," Your honest estimate, multiplied by 1.5. If you think the database migration takes 45 minutes, schedule a 70-minute window. Compression goes against you in maintenance: things take longer than expected, they rarely finish early. A window that ends 10 minutes early is fine. A window that runs 20 minutes over your published time generates customer anxiety and potentially SLA questions.",[12,40,41,44],{},[29,42,43],{},"Rollback criteria:"," The specific conditions under which you abort the maintenance and restore service. Define this before you start, not during a crisis. Example: \"If the migration has not completed within 80% of the scheduled window, we roll back and reschedule.\" Engineers under pressure make poor rollback decisions without pre-defined criteria.",[19,46,48],{"id":47},"step-2-choose-your-maintenance-window-timing","Step 2: Choose your maintenance window timing",[12,50,51],{},"The wrong timing turns routine maintenance into a customer trust event.",[12,53,54],{},[29,55,56],{},"Rules for timing selection:",[58,59,60,73],"table",{},[61,62,63],"thead",{},[64,65,66,70],"tr",{},[67,68,69],"th",{},"Criterion",[67,71,72],{},"Guidance",[74,75,76,85,93,101,109],"tbody",{},[64,77,78,82],{},[79,80,81],"td",{},"Traffic volume",[79,83,84],{},"Pick your lowest-traffic hour. Check your analytics for day-of-week and time-of-day patterns.",[64,86,87,90],{},[79,88,89],{},"Customer time zones",[79,91,92],{},"If customers are global, \"low traffic\" means different things in each zone. Check where your highest-value users are.",[64,94,95,98],{},[79,96,97],{},"Team availability",[79,99,100],{},"Someone must be watching during the window. Avoid times when your on-call team's capacity is low.",[64,102,103,106],{},[79,104,105],{},"Dependency schedules",[79,107,108],{},"Check whether your cloud provider, CDN, or database has its own maintenance that could overlap.",[64,110,111,114],{},[79,112,113],{},"Release freeze periods",[79,115,116],{},"Avoid scheduled maintenance within 48 hours of a major product release.",[12,118,119,122],{},[29,120,121],{},"Practical timing for B2B SaaS:"," Tuesday through Thursday, 2 AM to 5 AM in your primary customer time zone. Most B2B customers have low usage overnight on weekdays. Weekends feel safer but often have less team coverage.",[12,124,125,128],{},[29,126,127],{},"Practical timing for consumer apps:"," Sunday through Monday, 3 AM to 6 AM. Consumer traffic peaks on weekday evenings and weekends.",[19,130,132],{"id":131},"step-3-configure-monitoring-suppression-before-the-window","Step 3: Configure monitoring suppression before the window",[12,134,135],{},"This is the most commonly skipped step. If you start maintenance without suppressing monitoring, every affected endpoint fires alerts. Your on-call engineer gets paged for failures they already knew were coming. That alert noise trains teams to ignore on-call notifications - the exact behavior that leads to missed real incidents.",[12,137,138],{},[29,139,140],{},"How to configure maintenance windows in uptime monitoring tools:",[12,142,143],{},"Most monitoring tools support scheduled maintenance windows that suppress alerts during a defined time range. Configure this before the window starts, not during it.",[12,145,146],{},"In Vantaj (and most managed monitoring tools):",[148,149,150,154,157,160,163],"ol",{},[151,152,153],"li",{},"Go to maintenance settings",[151,155,156],{},"Set the start time and end time matching your published window",[151,158,159],{},"Select the affected monitors",[151,161,162],{},"Choose whether to suppress all alerts or only downtime alerts",[151,164,165],{},"Save - alerts will not fire during the window",[12,167,168,171],{},[29,169,170],{},"Critical detail:"," Set the monitoring suppression window slightly wider than your announced maintenance window - 15 minutes of buffer on each side. This accounts for starts that run a few minutes late and recoveries that need time to stabilize before monitoring resumes.",[12,173,174,175,180],{},"See ",[176,177,179],"a",{"href":178},"\u002Fblog\u002Fmaintenance-windows-monitoring-guide","maintenance windows monitoring guide"," for tool-specific configuration steps.",[19,182,184],{"id":183},"step-4-announce-to-customers-timing-and-channel-strategy","Step 4: Announce to customers - timing and channel strategy",[12,186,187],{},"Customer communication is not optional for maintenance that affects availability. The question is how much lead time and which channels.",[12,189,190],{},[29,191,192],{},"Minimum notice periods by maintenance type:",[58,194,195,208],{},[61,196,197],{},[64,198,199,202,205],{},[67,200,201],{},"Maintenance type",[67,203,204],{},"Minimum notice",[67,206,207],{},"Recommended notice",[74,209,210,221,231,241],{},[64,211,212,215,218],{},[79,213,214],{},"Routine update, under 15 min",[79,216,217],{},"24 hours",[79,219,220],{},"48 hours",[64,222,223,226,228],{},[79,224,225],{},"Significant change, 15–60 min",[79,227,220],{},[79,229,230],{},"1 week",[64,232,233,236,238],{},[79,234,235],{},"Major migration, over 1 hour",[79,237,230],{},[79,239,240],{},"2 weeks",[64,242,243,246,249],{},[79,244,245],{},"Emergency maintenance",[79,247,248],{},"ASAP - even 30 min notice is better than none",[79,250,251],{},"-",[12,253,254],{},[29,255,256],{},"Channels by customer tier:",[58,258,259,269],{},[61,260,261],{},[64,262,263,266],{},[67,264,265],{},"Channel",[67,267,268],{},"When to use",[74,270,271,279,287,295,303],{},[64,272,273,276],{},[79,274,275],{},"Status page scheduled maintenance",[79,277,278],{},"Every planned window, without exception",[64,280,281,284],{},[79,282,283],{},"Email to all paid users",[79,285,286],{},"Windows over 30 minutes, any time during business hours",[64,288,289,292],{},[79,290,291],{},"Email to enterprise accounts",[79,293,294],{},"All windows affecting services in their contract",[64,296,297,300],{},[79,298,299],{},"In-app banner",[79,301,302],{},"Active users who will encounter the maintenance page",[64,304,305,308],{},[79,306,307],{},"Direct account manager contact",[79,309,310],{},"Enterprise accounts with uptime SLAs",[12,312,313],{},[29,314,315],{},"What the announcement should say:",[317,318,319,322,325,328,331],"ul",{},[151,320,321],{},"What is being maintained (specific, not vague)",[151,323,324],{},"Start time in the customer's local time zone (or UTC with conversion note)",[151,326,327],{},"Expected duration",[151,329,330],{},"What customers should expect during the window (error page, full unavailability, partial degradation)",[151,332,333],{},"Contact for urgent questions",[12,335,336,337,341],{},"For a copy-ready template, see ",[176,338,340],{"href":339},"\u002Fblog\u002Fincident-communication-templates","incident communication templates"," - the maintenance announcement format applies directly.",[19,343,345],{"id":344},"step-5-execute-the-window-with-real-time-status-updates","Step 5: Execute the window with real-time status updates",[12,347,348],{},"Once the window starts, customers need to know it is in progress. A status page that shows \"Scheduled Maintenance\" and goes silent for 90 minutes creates anxiety.",[12,350,351],{},[29,352,353],{},"Update cadence during the window:",[58,355,356,366],{},[61,357,358],{},[64,359,360,363],{},[67,361,362],{},"Window duration",[67,364,365],{},"Update frequency",[74,367,368,376,384],{},[64,369,370,373],{},[79,371,372],{},"Under 15 minutes",[79,374,375],{},"Start + completion",[64,377,378,381],{},[79,379,380],{},"15–60 minutes",[79,382,383],{},"Start + 30-minute check-in + completion",[64,385,386,389],{},[79,387,388],{},"Over 60 minutes",[79,390,391],{},"Start + every 30 minutes + completion",[12,393,394],{},[29,395,396],{},"What updates should say:",[317,398,399,402,405,408],{},[151,400,401],{},"Maintenance is in progress (confirmation)",[151,403,404],{},"Current step or phase if multi-stage",[151,406,407],{},"Whether progress is on schedule or running behind",[151,409,410],{},"Revised completion estimate if behind",[12,412,413],{},[29,414,415],{},"If the window runs over:",[148,417,418,421,429,432],{},[151,419,420],{},"Immediately extend monitoring suppression (before the original window expires)",[151,422,423,424,428],{},"Update the status page: \"Maintenance is taking longer than expected. New estimated completion: ",[425,426,427],"span",{},"time",". We will update every 15 minutes.\"",[151,430,431],{},"Notify enterprise accounts directly if they have SLA-sensitive services affected",[151,433,434],{},"Do not let the original window expire without updating - customers watching the status page for \"Maintenance Complete\" will start filing tickets",[19,436,438],{"id":437},"step-6-post-window-verification-before-lifting-suppression","Step 6: Post-window verification before lifting suppression",[12,440,441],{},"The most dangerous moment in a maintenance window is right after the work completes. Engineers declare success, re-enable monitoring, and discover that something is still broken - now triggering real alerts rather than the suppressed ones.",[12,443,444],{},[29,445,446],{},"Pre-lift checklist:",[317,448,451,461,467,473,479],{"className":449},[450],"contains-task-list",[151,452,455,460],{"className":453},[454],"task-list-item",[456,457],"input",{"disabled":458,"type":459},true,"checkbox"," Health check endpoint returns expected response on all affected services",[151,462,464,466],{"className":463},[454],[456,465],{"disabled":458,"type":459}," Database connections established and query latency within normal range",[151,468,470,472],{"className":469},[454],[456,471],{"disabled":458,"type":459}," External dependencies confirmed reachable (third-party APIs, payment processors)",[151,474,476,478],{"className":475},[454],[456,477],{"disabled":458,"type":459}," Application logs showing normal request flow, no elevated error rate",[151,480,482,484],{"className":481},[454],[456,483],{"disabled":458,"type":459}," One full monitoring check cycle completed successfully before lifting suppression",[12,486,487],{},"Run this checklist before marking the window complete, not after. Lifting suppression when services are still recovering generates a wave of alerts that is difficult to distinguish from a new incident.",[19,489,491],{"id":490},"step-7-completion-notice-and-post-window-communication","Step 7: Completion notice and post-window communication",[12,493,494],{},"When verification is complete:",[12,496,497,500,501,504,505,508],{},[29,498,499],{},"Status page update:"," Mark maintenance complete with the actual end time. If it ran over schedule, acknowledge it: \"Maintenance completed at ",[425,502,503],{},"actual time",", approximately ",[425,506,507],{},"X"," minutes later than scheduled.\"",[12,510,511,514],{},[29,512,513],{},"Subscriber notification:"," Most status page tools send this automatically when you mark maintenance complete.",[12,516,517,520],{},[29,518,519],{},"Enterprise follow-up:"," For any window that ran significantly over schedule or caused customer-visible issues beyond the planned scope, send a personal follow-up from the account team within 24 hours.",[12,522,523,526,527,531],{},[29,524,525],{},"Internal postmortem (for significant windows):"," If the maintenance revealed unexpected complexity, caused unplanned downtime, or required rollback, run a brief postmortem. See ",[176,528,530],{"href":529},"\u002Fblog\u002Fhow-to-write-a-postmortem-guide","how to write an incident postmortem"," for the format.",[19,533,535],{"id":534},"maintenance-window-mistakes-that-create-incidents","Maintenance window mistakes that create incidents",[12,537,538,541],{},[29,539,540],{},"Not suppressing monitoring."," The most common mistake. Every affected endpoint fires alerts throughout the window. On-call gets paged for expected failures. Alert trust degrades.",[12,543,544,547],{},[29,545,546],{},"Suppressing monitoring too broadly."," Suppressing all monitors site-wide during a database migration means a real application error during the window goes undetected. Suppress only the monitors affected by the specific maintenance.",[12,549,550,553],{},[29,551,552],{},"No rollback criteria."," Engineers extend migrations past the window end time hoping they will finish, rather than rolling back per plan. The window overruns, customers notice, and what was scheduled maintenance becomes an unplanned incident.",[12,555,556,559],{},[29,557,558],{},"Announcing too late."," A maintenance announcement posted 2 hours before a 3 AM window reaches enterprise customers who have automated workflows running at that time. They have no time to adjust.",[12,561,562,565],{},[29,563,564],{},"No post-window verification."," Declaring the window complete while services are still recovering. The first monitor check fires a real alert. On-call has to investigate whether it is a residual maintenance issue or a new problem.",[12,567,568,571],{},[29,569,570],{},"Forgetting to notify subscribers after completion."," Customers who subscribed to status page notifications to track the maintenance window get no completion notice. They check the status page manually hours later and wonder what happened.",[19,573,575],{"id":574},"using-maintenance-windows-for-sla-purposes","Using maintenance windows for SLA purposes",[12,577,578],{},"If your SLA excludes planned maintenance (most do), document every window correctly:",[317,580,581,584,587],{},[151,582,583],{},"Record the announcement timestamp and channel",[151,585,586],{},"Record the actual start and end time",[151,588,589],{},"Note any deviation from the announced scope",[12,591,592],{},"This documentation protects you if a customer later claims the downtime during a maintenance window should count against their SLA credit. Without records showing the window was announced in advance, the claim is harder to dispute.",[12,594,595,596,600,601,605],{},"For SLA tracking infrastructure, see ",[176,597,599],{"href":598},"\u002Fblog\u002Fuptime-sla-monitoring","uptime SLA monitoring"," and ",[176,602,604],{"href":603},"\u002Fblog\u002Fsla-vs-slo-vs-sli","SLA vs SLO vs SLI",".",[19,607,609],{"id":608},"related-guides","Related guides",[317,611,612,617,623,628,634,640,644,649,654],{},[151,613,614],{},[176,615,616],{"href":178},"Maintenance Windows Monitoring Guide",[151,618,619],{},[176,620,622],{"href":621},"\u002Fblog\u002Fhow-to-communicate-during-service-outage","How to Communicate During a Service Outage",[151,624,625],{},[176,626,627],{"href":339},"Incident Communication Templates",[151,629,630],{},[176,631,633],{"href":632},"\u002Fblog\u002Fwhy-you-need-a-status-page","Why You Need a Status Page",[151,635,636],{},[176,637,639],{"href":638},"\u002Fblog\u002Fbest-status-page-software","Best Status Page Software",[151,641,642],{},[176,643,604],{"href":603},[151,645,646],{},[176,647,648],{"href":598},"Uptime SLA Monitoring",[151,650,651],{},[176,652,653],{"href":529},"How to Write an Incident Postmortem",[151,655,656],{},[176,657,659],{"href":658},"\u002Fblog\u002Fuptime-monitoring-best-practices","Uptime Monitoring Best Practices",{"title":661,"searchDepth":662,"depth":662,"links":663},"",2,[664,665,666,667,668,669,670,671,672,673],{"id":21,"depth":662,"text":22},{"id":47,"depth":662,"text":48},{"id":131,"depth":662,"text":132},{"id":183,"depth":662,"text":184},{"id":344,"depth":662,"text":345},{"id":437,"depth":662,"text":438},{"id":490,"depth":662,"text":491},{"id":534,"depth":662,"text":535},{"id":574,"depth":662,"text":575},{"id":608,"depth":662,"text":609},"tutorials","2026-07-13","A step-by-step guide for setting up maintenance windows that don't break your monitoring, don't surprise your customers, and don't generate false alerts. Covers planning, timing, customer communication, and post-window verification.","md",[679,682,685,688],{"q":680,"a":681},"What is a maintenance window in monitoring?","A maintenance window is a scheduled period when planned downtime or degradation is expected. Monitoring tools suppress alerts during this window so engineers are not paged for expected failures. The window is announced on your status page so customers know the downtime is planned.",{"q":683,"a":684},"How far in advance should you announce a maintenance window?","48 hours minimum for routine maintenance. 1 to 2 weeks for maintenance that affects availability for more than 2 hours or that affects enterprise customers with SLAs. Emergency maintenance should be announced as soon as the decision is made, even if that is 30 minutes before.",{"q":686,"a":687},"Should maintenance windows count against SLA uptime?","Only if your SLA does not explicitly exclude planned maintenance. Most SLAs include a carve-out for maintenance windows provided they are announced in advance with sufficient notice. Check your SLA language and confirm with your legal team before committing maintenance exclusions to customers.",{"q":689,"a":690},"What happens if maintenance runs longer than the window?","Extend the monitoring suppression window immediately to avoid false alerts. Update your status page to inform customers of the delay and give a new estimated completion time. Do not let the original window expire while work is still in progress.",{"name":692,"description":693,"steps":694},"How to set up a maintenance window","Plan, announce, execute, and verify a maintenance window without generating false alerts or surprising customers.",[695,698,701,704,707,710],{"name":696,"text":697},"Define scope and duration","List every service component that will be affected, the expected start time, and a duration estimate padded by 50%. Document rollback criteria.",{"name":699,"text":700},"Notify customers in advance","Post a scheduled maintenance announcement on your status page at least 48 hours before the window. Email enterprise and paid users 24 hours before for windows longer than 30 minutes.",{"name":702,"text":703},"Configure monitoring suppression","Schedule a maintenance window in your monitoring tool to suppress alerts for affected monitors during the planned window. Use the same time range as your status page announcement.",{"name":705,"text":706},"Execute and post incremental updates","Start the maintenance at the scheduled time. Post a status page update at start, at any significant milestone, and immediately on completion or delay.",{"name":708,"text":709},"Verify recovery and lift suppression","After work completes, run health checks on all affected endpoints before re-enabling monitoring. Confirm all monitors return to green before marking the window complete.",{"name":711,"text":712},"Post a completion notice","Update the status page to mark maintenance complete. If the window ran over, explain why. Notify subscribers automatically.",null,{},"\u002Fblog\u002Fhow-to-set-up-maintenance-windows",11,{"title":5,"description":676},"blog\u002Fhow-to-set-up-maintenance-windows","tYJwyu3j1LJxYq1V0FiMG522RnmuZdEPgVYQWbnuB8k",1783070165894]