Apollo "rover subgraph check" found breaking changes in CI
rover subgraph check diffs your proposed schema against the published graph and replays recent operations. When a change would break a known client operation, it reports the breaking changes and exits non-zero, failing the gate.
What this error means
A rover subgraph check step fails with "Compared X schema changes against Y operations" and a table of breaking changes (FIELD_REMOVED, TYPE_REMOVED, ARG_REMOVED), exit code 1.
Compared 2 schema changes against 124 operations
There were 1 breaking changes
FAIL FIELD_REMOVED `User.fullName` was removed
error[E030]: This operation check has encountered 1 schema change that would break operationsCommon causes
A field or type clients still use was removed
The proposed schema deletes or renames something that recent traffic in the registry still queries, so the check flags it as breaking.
An argument or nullability changed incompatibly
Making a previously optional argument required, or narrowing a return type, breaks existing operations.
How to fix it
Deprecate instead of removing, or restore the field
- Read which change the check marks breaking and which operations it affects.
- Keep the field and mark it
@deprecateduntil clients migrate, or revert the removal. - Re-run the check to confirm no breaking changes remain.
type User {
name: String!
fullName: String @deprecated(reason: "use name") # keep until clients migrate
}Accept a vetted breaking change deliberately
If the change is intended and clients are confirmed migrated, coordinate the launch rather than bypassing the gate silently.
rover subgraph check my-graph@current \
--schema ./schema.graphql --name usersHow to prevent it
- Run rover subgraph check on every schema PR.
- Deprecate fields before removing them and watch usage drop to zero.
- Coordinate breaking launches with client owners, not by skipping the check.