Skip to content

GraphQL error not formatted properly when it returns a 4xx or 5xx http status #2940

Open
@remonke

Description

@remonke

Is there an existing issue for this?

  • I have searched the existing issues

Current behavior

In Apollo, there's a way of providing a custom http status via extensions on the GraphQLError / ApolloError, as is the case with the default validation error, which returns a status of 400. Unfortunately, instead of the response being formatted the usual way - with data and errors, everything gets wrapped inside of the error object. Is there any way to disable this behavior?

Screenshot_20230727_050425
Screenshot_20230727_050459

Minimum reproduction code

https://github.com/remonke/nest-graphql-error-bug

Steps to reproduce

Install the dependencies pnpm install
Start the server
Open the playground
Test the two available queries throwError and throwErrorWithHttpStatus

Expected behavior

I expect a GraphQL errror with a custom http status to get formatted like all the others.

Package version

12.0.8

Graphql version

graphql: 16.7.1
@apollo/server: 4.8.1
@nestjs/apollo: ^12.0.7

NestJS version

10.0.0

Node.js version

20.4.0

In which operating systems have you tested?

  • macOS
  • Windows
  • Linux

Other

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions