Error handling
When we use a GraphQL API there are two kinds of errors we may encounter: Network Errors and GraphQL
Errors from the API. Since it's common to encounter either of them, there's a
CombinedError
class that can hold and abstract either.
We may encounter a CombinedError
when using urql
wherever an error
may be returned, typically
in results from the API. The CombinedError
can have one of two properties that describe what went
wrong.
- The
networkError
property will contain any error that stoppedurql
from making a network request. - The
graphQLErrors
property may be an array that contains normalizedGraphQLError
s as they were returned in theerrors
array from a GraphQL API.
Additionally, the message
of the error will be generated and combined from the errors for
debugging purposes.

It's worth noting that an error
can coexist and be returned in a successful request alongside
data
. This is because in GraphQL a query can have partially failed but still contain some data.
In that case CombinedError
will be passed to us with graphQLErrors
, while data
may still be
set.