Skip to content

Depth limit validator key error if fragment undefined #1538

Open
@ahmedaljawahiry

Description

@ahmedaljawahiry

Current behaviour:
When using the depth_limit_validator (docs), an invalid query can lead to a KeyError being thrown (from here), which usually results in the API returning a 500 server error.

To reproduce:

  • Add the depth_limit_validator to the validation_rules in your GraphQLView.
  • Execute a query with an undefined fragment, i.e. something like:
query {
  validQuery {
    validField
    ...undefinedFragment
  }
}

Expected behaviour:
A standard validation error response, like:

{
  "errors": [
    {
      "message": "Unknown fragment 'undefinedFragment'.",
      "locations": [
        {
          "line": x,
          "column": y
        }
      ]
    }
  ]
}

Since this is something that's caught by the standard validators, depth_limit_validator should probably just skip such errors. Or, do whatever the other validators do when they hit an "unrelated" error.

Environment:

  • Version: 3.3
  • Platform: n/a

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions