Make it simpler in `ExecutionDiagnosticEventListener.ResolverError` to distinguish between server and client errors
Product
Hot Chocolate
Is your feature request related to a problem?
I want to log all server errors as errors, and all client errors at a lower severity level. However, ExecutionDiagnosticEventListener.ResolverError gives me no robust way to distinguish between them.
I originally tried to base this on whether the IError passed to ResolverError contains an exception, but this does then not log errors like HC0018 "Cannot return null for non-nullable field" as errors. I can of course add this code to the check, but adding error codes as I randomly discover that something is not logged as an error is no way to go about this.
The solution you'd like
I'm open to various solutions, but it could be something as simple as a property IError.IsServerError or IError.IsClientError.
With client errors you really mean error that are caused by client inputs?
Yes, that is correct. Put another way, errors that according to normal HTTP semantics would give 4XX errors (and not 5XX errors). Or in yet other words: Errors where the client, not the server, is at fault.
Related: Error code HC0018 is used both when a required variable is missing (client error) and when the server tries to return null for a non-nullable field (server error).
So currently, for this error code, I have to also check the message in order to know whether to log this as an error.