Skip to main content

Upcoming Change to GraphQL Mutation Nullability

RSS Feed
Action Required

Aug. 5, 2026, 8:56 a.m.

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.