<!-- llms-explorer concept facts · https://llms-explorer.com/tree/maintenance-window-configuration/ · pack 2026-10-15 · ~2405 tokens -->

# Maintenance Window Configuration

> Depth-first rabbithole dossier for Maintenance Window Configuration; source-anchored research pack.

Parent: [Atlas Maintenance Windows](https://llms-explorer.com/tree/atlas-maintenance-windows/) · 3 facets · 17 facts · page: https://llms-explorer.com/tree/maintenance-window-configuration/

## How it works

- [low] When maintenance waves are configured, Atlas ensures at least a 48-hour gap between rollouts to consecutive waves. If each environment project uses the same maintenance window and protected hours and is assigned to Dev=Wave 1, QA=Wave 2, Prod=Last Wave, this guarantees an at least seven-day period between maintenance events rolled out to each environment. Sources: https://www.mongodb.com/docs/atlas/tutorial/cluster-maintenance-window.md — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/maintenance-window-configuration-3d5224ed12/rabbithole-synthesis.md#core`
- [high] For replica sets, upgrades should be planned during a predefined maintenance window, and it is advisable to upgrade a lower environment that reproduces production before upgrading a production environment. Sources: https://www.mongodb.com/docs/manual/tutorial/upgrade-revision.md, https://www.percona.com/blog/upgrade-process-of-percona-server-for-mongodb-replica-set-and-shard-cluster/ — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/maintenance-window-configuration-3d5224ed12/rabbithole-synthesis.md#core`
- [low] The `defer` resource makes a one-time API call to defer the maintenance window when modified or set to true, while `auto_defer` calls the toggle maintenance auto-defer endpoint under similar conditions. Sources: https://github.com/mongodb/terraform-provider-mongodbatlas/issues/3155 — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/maintenance-window-configuration-3d5224ed12/rabbithole-synthesis.md#core`
- [medium] In Terraform, the `auto_defer_once_enabled` property is associated with the update maintenance window API operation, and the `resourceUpdate` function adds ProtectedHours to the PATCH body only when a change is detected. Sources: https://github.com/mongodb/terraform-provider-mongodbatlas/issues/3155, https://github.com/mongodb/terraform-provider-mongodbatlas/issues/4796 — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/maintenance-window-configuration-3d5224ed12/rabbithole-synthesis.md#troubleshooting`
- [low] Protected hours are defined by zero-based integers representing the beginning and end hours of the day, and the maintenance wave identifier is not editable when the organization's wave assignment mode is ENV_TAG_MAPPING. Sources: https://www.pulumi.com/registry/packages/mongodbatlas/api-docs/maintenancewindow/ — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/maintenance-window-configuration-3d5224ed12/rabbithole-synthesis.md#core`
- Sources conflict on whether Atlas automatically updates maintenance wave assignments when a project's environment tag is updated: one source states it does not, while another states it does. Sources: https://www.mongodb.com/docs/atlas/tutorial/configure-maintenance-window-settings.md — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/maintenance-window-configuration-3d5224ed12/rabbithole-synthesis.md#disagreements`

## Problems, failure modes and limitations

- [high] Once a maintenance window is scheduled for a cluster, it cannot be changed until ongoing maintenance operations complete, and a 'Maintenance window completed' event appears in the Project Activity Feed when operations finish. Sources: https://www.mongodb.com/docs/atlas/tutorial/cluster-maintenance-window.md, https://www.mongodb.com/docs/atlas/cli/current/command/atlas-api-maintenanceWindows-updateMaintenanceWindow.md, https://www.pulumi.com/registry/packages/mongodbatlas/api-docs/maintenancewindow/ — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/maintenance-window-configuration-3d5224ed12/rabbithole-synthesis.md#core`
- [medium] The length of the protected hours window cannot exceed 18 hours, and Atlas performs standard updates, which do not involve cluster restarts or resyncs, outside of these protected hours. Sources: https://www.mongodb.com/docs/atlas/tutorial/cluster-maintenance-window.md, https://www.mongodb.com/docs/atlas/tutorial/configure-maintenance-window-settings.md, https://www.mongodb.com/docs/atlas/architecture/current/high-availability.md, https://www.mongodb.com/docs/atlas/architecture/current/operational-readiness-checklist.md — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/maintenance-window-configuration-3d5224ed12/rabbithole-synthesis.md#core`

## Facts and statements

- [medium] Deleting a maintenance window configuration restores default settings, and updating the maintenance window resets any maintenance deferrals for the project. Sources: https://www.mongodb.com/docs/atlas/tutorial/configure-maintenance-window-settings.md, https://www.mongodb.com/docs/atlas/cli/current/command/atlas-api-maintenanceWindows-updateMaintenanceWindow.md — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/maintenance-window-configuration-3d5224ed12/rabbithole-synthesis.md#core`
- [low] Maintenance windows, protected hours, and maintenance waves are configured per project and apply only to Dedicated clusters (M10 and above), while Atlas automatically manages maintenance for Free and Flex clusters without manual configuration. Sources: https://www.mongodb.com/docs/atlas/tutorial/cluster-maintenance-window.md — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/maintenance-window-configuration-3d5224ed12/rabbithole-synthesis.md#core`
- [low] Atlas assigns projects without a configured maintenance window to Wave 1 and projects with a configured maintenance window to Wave 2, with waves labeled sequentially from Wave 1 to Last Wave. Sources: https://www.mongodb.com/docs/atlas/tutorial/cluster-maintenance-window.md — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/maintenance-window-configuration-3d5224ed12/rabbithole-synthesis.md#core`
- [medium] If Atlas upgrades the MongoDB maintenance version during the next maintenance window, the cluster displays the target MongoDB maintenance version, and Atlas maintains uptime by applying updates in a rolling fashion to one node at a time. Sources: https://www.mongodb.com/docs/atlas/tutorial/cluster-maintenance-window.md, https://www.mongodb.com/docs/atlas/architecture/current/high-availability.md — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/maintenance-window-configuration-3d5224ed12/rabbithole-synthesis.md#core`
- [low] If 'Use Project Tags to auto-define waves' is selected in organization-level settings, manual configuration of maintenance waves from project settings is disabled, and Atlas generates wave assignments based on environment project tags. Sources: https://www.mongodb.com/docs/atlas/tutorial/configure-maintenance-window-settings.md — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/maintenance-window-configuration-3d5224ed12/rabbithole-synthesis.md#core`
- [low] Maintenance window times use the project’s configured timezone, which can only be updated via the Project Settings UI, and the day of the week is specified as a 1-based integer (Su=1 to Sa=7) alongside the 24-hour clock start hour. Sources: https://www.pulumi.com/registry/packages/mongodbatlas/api-docs/maintenancewindow/ — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/maintenance-window-configuration-3d5224ed12/rabbithole-synthesis.md#core`
- [high] The `mongodbatlas_maintenance_window` resource allows defining the day and hour for automatic minor version updates, with only a single maintenance window resource definable per project. Sources: https://www.mongodb.com/docs/atlas/architecture/current/operational-readiness-checklist.md, https://www.pulumi.com/registry/packages/mongodbatlas/api-docs/maintenancewindow/ — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/maintenance-window-configuration-3d5224ed12/rabbithole-synthesis.md#core`
- [high] Atlas evaluates configured maintenance waves at the time a maintenance event first goes out, and maintenance begins as close to the scheduled hour as possible, though in-progress updates or system issues may delay the start. Sources: https://www.mongodb.com/docs/atlas/tutorial/cluster-maintenance-window.md, https://www.mongodb.com/docs/atlas/cli/current/command/atlas-api-maintenanceWindows-updateMaintenanceWindow.md, https://www.pulumi.com/registry/packages/mongodbatlas/api-docs/maintenancewindow/ — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/maintenance-window-configuration-3d5224ed12/rabbithole-synthesis.md#core`
- [high] Maintenance can be triggered immediately by passing the `--startASAP` option or setting the optional `startASAP` field to `true`, which returns true from the request time until the maintenance event completes. Sources: https://www.mongodb.com/docs/atlas/tutorial/respond-to-required-maintenance.md, https://www.pulumi.com/registry/packages/mongodbatlas/api-docs/maintenancewindow/ — source: `~/.global-ai-hub/research/.pipeline/mongodb-2026-10-14/frb/maintenance-window-configuration-3d5224ed12/rabbithole-synthesis.md#tools`

## Related concepts

- Maintenance — is a part of Maintenance Window Configuration
- Window — is a part of Maintenance Window Configuration
- Configuration — is a part of Maintenance Window Configuration
