Upcoming Change to GraphQL Mutation Nullability
All previously non-nullable top-level mutation fields in the schema will be made semantically nullable.
What is changing?
On the schema: The currently non-nullable mutation types will lose their final !. Note that all mutation operations rely on the field and input type names, never on the name of the output type, so this change will not break any request.
During successful operations: Nothing changes. The API will continue to return a full, non-empty data payload just as it does today.
During failed operations: If a mutation fails, GraphQL will now return null only for that specific failed field, rather than wiping out the entire "data" object.
Examples with an operation calling two mutation fields:
mutation ExampleOperation{
firstFieldSuccessful(...){
fieldOne
}
secondFieldFailing(...){
fieldTwo
}
}
Before
With a non-nullable field (type SecondFieldFailingMutation!):
{
"data": null,
"errors": [...]
}
After
With a nullable field (type SecondFieldFailingMutation):
{
"data": {
"firstFieldSuccessful": {
"fieldOne": ...
},
"secondFieldFailing": null,
},
"errors": [...]
}
When?
The change will go live in seven weeks, on September 28th 2026.
What do I need to do?
Please ensure your client-side code and type generators can handle a switch to a nullable type for the affected mutations. For example, if you were checking for the whole data object not being null as a sign that the mutation was successful, you'll need to adapt your code, and ideally switch to checking the errors object instead.