Breaking Change Overrides for GraphQL Schema Checks | Cosmo by WunderGraph - WunderGraph
Approve intentional breaking changes without disabling safety checks
When a schema check fails on an approved change, mark specific changes as safe for specific operations. Future checks respect those overrides. All overrides visible in one dashboard.
The problem
No middle ground between blocking and disabling
Schema checks have no way to distinguish an approved, coordinated change from an unreviewed one. The only options are to pass or fail — and blocking everything means teams disable checks to ship.
Approved breaking changes still block CI/CD
A field type change coordinated with all consumers fails the schema check. The team must either wait or disable checks entirely — both bad options.
All-or-nothing check enforcement is too blunt
There is no way to say "this specific change is safe for this specific operation." Either the check passes for everyone or it fails for everyone.
Approved exceptions have no audit trail
Teams work around blocked checks by disabling them. Approved exceptions are not recorded, not visible, and not linked to the operations they affect.
Our solution
Per-operation breaking change overrides
Mark specific breaking changes as safe for specific operations. Future checks treat those combinations as approved. Breaking changes are still detected and reported — overrides do not disable the check.
From blocked check to approved override
- A schema check detects breaking changes and identifies which operations are affected.
- On the check results page, review the failing operations and the specific breaking changes that affect them.
- Select "Ignore all changes" to override all listed breaking changes for an operation, or "Ignore operation" to exclude the entire operation from future operation checks.
- Breaking changes are still detected and reported. Overrides apply only to operation checks — composition, breaking change detection, and linting are not affected.
- The current check run result does not change when overrides are applied. Only future checks respect the new overrides.
- View all active overrides in the overrides dashboard. Each entry links to metrics and traces for the affected operation.
Safety checks stay on. Approved changes go through.
Breaking Change Overrides
Before & After
| Before Cosmo | With Cosmo |
|---|---|
| Approved breaking changes block the check with no recourse | Override specific changes for specific operations |
| All-or-nothing check enforcement | Granular per-operation, per-change control |
| Workarounds to bypass checks entirely | Proper override workflow with an audit dashboard |
| No visibility into what has been approved | All overrides visible in one dashboard with links to metrics and traces |
Scope
What overrides apply to
Applies to Operation checks. Future checks for the configured operation and change combinations.
Does not apply to Composition checks. Breaking change detection. Linting. The current check run — overrides take effect on future checks only.
Overrides are active across all graphs in a namespace.
How breaking change overrides work in Cosmo
- Breaking changes still detected.
Review check
A schema check fails due to breaking changes. Open the check results page to see which operations are affected and which changes caused the failure.
- Per-operation, per-change control.
Override
Select "Ignore all changes" to override breaking changes for a specific operation, or "Ignore operation" to exclude the operation from future checks.
- Only future checks are affected.
Future checks pass
The current check result does not change. Future checks treat the overridden changes as safe for the configured operations.
- All overrides in one dashboard.
Audit dashboard
View all overrides in the dashboard. Fine-tune configurations, check usage via metrics and traces, and confirm overrides are still appropriate.
Capabilities
What breaking change overrides give you
Per-operation control
Override specific breaking changes for specific operations. Other operations continue to be checked normally.
Two override modes
"Ignore all changes" overrides all listed breaking changes for an operation. "Ignore operation" excludes the entire operation from future operation checks.
Future checks only
Applying overrides does not change the outcome of the current check. Only subsequent checks respect new overrides.
Override dashboard
View all active overrides in one place. Each entry links to metrics and traces for usage verification.
Ship approved changes without disabling checks
Override specific changes for specific operations. Keep every other check intact.
FAQ
Breaking Change Overrides on Cosmo
- What do overrides apply to?
- Does applying an override change the current check result?
- What is the difference between "Ignore all changes" and "Ignore operation"?
- Are overrides scoped to a graph or a namespace?
- Where can I see all active overrides?
- Can I remove an override?
More in the overrides documentation.