Config change without restart semantics: symptoms, cause, and the test that catches it
A config edit is applied to some instances and not others, producing inconsistent behaviour.
Config change without restart semantics is documented by 2 accepted public reports from 2 organisations, 2 of them published in the last 5 years.
- Likelihood: low (2 public reports in 5 years)
- Impact: medium (2 of 2 reports: availability)
Symptoms
User-visible
- Port forwarding stopped working in the web client of the cloud development environment service after a secret rotation.[2]
- Creation and start failures for cloud development environments increased in all regions.[2]
- Two VM pools in West Europe kept failing after the service was restarted elsewhere.[2]
- Internet users saw error pages indicating a failure inside the provider network.[1]
- Core traffic recovered for periods and then failed again while nodes produced different feature files.[1]
Monitoring-visible
- Error-rate alerts did not fire on the drop in traffic to the port forwarding backend.[2]
- A monitor alerted on a separate downstream component at 17:18 UTC.[2]
- VM pools were heavily drained.[2]
- 5xx error volume spiked above baseline and fluctuated as good and bad configuration files were distributed every five minutes.[1]
- The first symptom looked like a degraded response rate in the key-value service.[1]
Root causes
- stage: config Downstream components picked up a rotated secret only after a process restart, while the team expected the new secret to load without intervention.[2]
- stage: release-process A step in the secret rotation checklist was missed, and one service instance in West Europe was not rotated along with the rest.[2]
- stage: config A database permissions change was rolled out gradually across a cluster, so updated nodes generated the feature file differently from nodes not yet updated.[1]
- stage: code A query without a database name filter returned duplicate columns on updated nodes only, which doubled the feature file past the proxy's 200-feature limit.[1]
Public examples
- [1]Cloudflare, 2025-11-18. A database permissions change was rolled out gradually across a ClickHouse cluster, so the Bot Management feature file was generated correctly on some nodes and wrongly on updated nodes, and the network alternated between good and bad files until every node produced the oversized file. primary Cloudflare outage on November 18, 2025
- [2]GitHub, 2022-11-02. After a Codespaces secret rotation with a missed step, some downstream components kept using the old secret because they only loaded the new one on process restart, and one service instance in West Europe was not rotated at all, so port forwarding and later codespace creation failed. primary GitHub Availability Report: October 2022
Test classes that catch it
| Test class | Stage | Limitation | Basis |
|---|---|---|---|
| Configuration and environment tests | post-deploy | A configuration check confirms the new secret is stored, but it does not show which secret version each running process holds until that process restarts. | by design analysis |
| Integration tests | pre-deploy | An integration run against one database node sees either the old or the new permissions, never the mixed state that a gradual rollout creates across the cluster. | by design analysis |
| Canary and progressive delivery checks | post-deploy | A canary that watches error rates misses a fault that shows as a traffic drop, which is how the port forwarding failure appeared. | by design analysis |
Risk
- Likelihood: low (2 public reports in 5 years)
- Impact: medium (2 of 2 reports: availability)
| Accepted public reports | 2 |
|---|---|
| Published in the last 5 years | 2 |
| Impact stated: availability | 2 |
Pre-release checklist
- PR-01
- PR-02
- PR-03
- PR-04
- PR-05
- PR-06
- PR-07
- PR-08
- PR-09
First 30 minutes
- FM-01
- FM-02
- FM-03
- FM-04
- FM-05
- FM-06
- FM-07
- FM-08
Download the checklist
What catches this: catalogue entries
Listed because their own documentation or site names configuration and environment tests, integration tests, canary and progressive delivery checks on the verification date. Alphabetical. Not a recommendation.
Tools whose documentation names these test classes
- Argo Rollouts canary source verified 2026-10-21
- Flagger canary source verified 2026-10-21
- Flipt config source verified 2026-10-21
- GrowthBook config source verified 2026-10-21 canary source verified 2026-10-21
- Hoverfly integration source verified 2026-10-21
- Kayenta canary source verified 2026-10-21
- LaunchDarkly config source verified 2026-10-21 canary source verified 2026-10-21
- PostHog config source verified 2026-10-21
- Postman integration source verified 2026-10-21
- Serenity BDD integration source verified 2026-10-21
- Spinnaker canary source verified 2026-10-21
- Testcontainers integration source verified 2026-10-21
- TestNG integration source verified 2026-10-21
- Unleash config source verified 2026-10-21 canary source verified 2026-10-21
Providers whose site names these test classes
- andagon people GmbH integration source verified 2026-10-21
- Appmatics integration source verified 2026-10-21
- AQA Masters integration source verified 2026-10-21
- Cleverix integration source verified 2026-10-21
- Crestech Software Systems integration source verified 2026-10-21
- DeviQA integration source verified 2026-10-21
- Invensis Technologies integration source verified 2026-10-21
- Outpost QA integration source verified 2026-10-21
- Q-Centric GmbH integration source verified 2026-10-21
- QA Madness integration source verified 2026-10-21
- QA Mentor integration source verified 2026-10-21
- QAwerk integration source verified 2026-10-21
- Quality Island integration source verified 2026-10-21
- Soflab Technology integration source verified 2026-10-21
- SQA - Software Quality Assurance S.A. integration source verified 2026-10-21
- SunTec India integration source verified 2026-10-21
- TestFort integration source verified 2026-10-21
- Testhouse integration source verified 2026-10-21
- Testing IT integration source verified 2026-10-21
- TestMatick integration source verified 2026-10-21
- Testscenario integration source verified 2026-10-21
- Zoonou integration source verified 2026-10-21
Only on this page
In report [2], config change without restart semantics took 247 minutes to detect. The secret rotation ran at 23:14 UTC. An internal report flagged the fault at 03:21 UTC on 28 September. Error-rate alerts stayed quiet because the fault appeared as a drop in traffic to the port forwarding backend. The secret was exchanged for a token cached for up to 24 hours, and components loaded the new secret only after a process restart.
Report [1] detected its gradual permissions rollout 26 minutes after the change, through the first automated test. The follow-ups in report [2] add traffic-level anomaly alerts and monitoring of which secret versions are in use per component.
Related incidents
- Rate limit misconfigured A rate limit change blocks legitimate traffic or stops protecting an endpoint.
- Environment mismatch: production points to staging A production service reads a staging endpoint, bucket or database after a config change.
- Flag enabled for wrong segment A feature flag targets the wrong users, region or percentage after a rule edit.
- Flag default flips on missing config A missing or unreadable flag config falls back to the wrong default.
- All sessions invalidated A change to session signing or storage logs every user out at once.
Questions
What causes config change without restart semantics?
In one report, components loaded a rotated secret only on process restart, and one West Europe instance was not rotated [2]. In another report, a permissions change rolled out gradually across a database cluster, so updated and old nodes generated different feature files [1].
What are the symptoms of config change without restart semantics?
Port forwarding and environment creation failed while some components still used the old secret [2]. Core traffic recovered and failed again as good and bad files were distributed every five minutes [1].
Why did tests not catch config change without restart semantics?
Error-rate alerts did not fire on the drop in traffic to the port forwarding backend [2]. An integration run against one database node never sees the mixed permission state of a gradual rollout.
How long did it take to detect config change without restart semantics in the public reports?
One report took 247 minutes from the 23:14 UTC rotation to an internal report at 03:21 UTC [2]. The other detected the fault through an automated test 26 minutes after the change [1].
What should be checked before a release to prevent config change without restart semantics?
PR-01 lists the secret version each process holds after a rotation. PR-05 runs the feature file query against a cluster with only part of the nodes on the new permissions.
Should a team roll back or fix forward when config change without restart semantics happens?
One report stopped propagation of new files and deployed a known-good file globally [1]. The other ran the missed rotation step and restarted the service in all regions [2].
Release Incident Playbook (2026). Config change without restart semantics: symptoms, cause, and the test that catches it, content version 1.0.0. https://releasefailures.com/incidents/config-change-without-restart-semantics/. Accessed 2026-10-21.