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.

Additionally, the message of the error will be generated and combined from the errors for debugging purposes.

Combined errors

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.