Description
What is happening
A non null error is reported for a field that is not null, e.g.
Cannot return null for non-nullable field Account.id.
What is really happening
When you dig into graphql code and start console.logging intermediate results, you start seeing very different things:
Scenario 1
Expected a value of type "PostRegistration" but received: "TERMS"
So, in this case, I had added a value to an ENUM field in the database but forgot to add it to the graphql enum, hence the error. Impossible to determine from the provided error message (cannot return null ...
).
Scenario 2
non nullable field Account.foo was null
In this case, another required key on the same object was provided with a null value. It seems obvious, but the error message is so specific, that you can easily miss this.
In short, a whole class of field validation errors, is being aggregated to a single highly specific message that is plain wrong.