diff --git a/errors/errors.go b/errors/errors.go index ea71bbb160..80476994b5 100644 --- a/errors/errors.go +++ b/errors/errors.go @@ -3,8 +3,9 @@ package errors import "fmt" type QueryError struct { - Message string `json:"message"` - Locations []*Location `json:"locations,omitempty"` + Message string `json:"message"` + Locations []*Location `json:"locations,omitempty"` + ResolverError error `json:"-"` } type Location struct { diff --git a/internal/exec/exec.go b/internal/exec/exec.go index 3100532765..44bacf1498 100644 --- a/internal/exec/exec.go +++ b/internal/exec/exec.go @@ -554,7 +554,9 @@ func (e *fieldExec) execField(ctx context.Context, r *request, f *query.Field, r result, err := e.execField2(spanCtx, r, f, resolver, span) if err != nil { - r.addError(errors.Errorf("%s", err)) + queryError := errors.Errorf("%s", err) + queryError.ResolverError = err + r.addError(queryError) addResult(f.Alias, nil) // TODO handle non-nil ext.Error.Set(span, true)