question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

IntrospectionQuery fails, unable to run graphiql

See original GitHub issue

Hi everyone,

as of this morning (but possibly even earlier) I haven’t been able to run graphiql in my project anymore. After extensive investigation, I’ve come to a conclusion that none of my changes have broken the app.

It seems to me that the IntrospectionQuery has changed and is not compatible anymore.

Here is the IntrospectionQuery that it’s trying to run:

query IntrospectionQuery {
      __schema {
        description
        queryType { name }
        mutationType { name }
        
        types {
          ...FullType
        }
        directives {
          name
          description
          
          locations
          args(includeDeprecated: true) {
            ...InputValue
          }
        }
      }
    }

    fragment FullType on __Type {
      kind
      name
      description
      specifiedByURL
      fields(includeDeprecated: true) {
        name
        description
        args(includeDeprecated: true) {
          ...InputValue
        }
        type {
          ...TypeRef
        }
        isDeprecated
        deprecationReason
      }
      inputFields(includeDeprecated: true) {
        ...InputValue
      }
      interfaces {
        ...TypeRef
      }
      enumValues(includeDeprecated: true) {
        name
        description
        isDeprecated
        deprecationReason
      }
      possibleTypes {
        ...TypeRef
      }
    }

    fragment InputValue on __InputValue {
      name
      description
      type { ...TypeRef }
      defaultValue
      isDeprecated
      deprecationReason
    }

    fragment TypeRef on __Type {
      kind
      name
      ofType {
        kind
        name
        ofType {
          kind
          name
          ofType {
            kind
            name
            ofType {
              kind
              name
              ofType {
                kind
                name
                ofType {
                  kind
                  name
                  ofType {
                    kind
                    name
                  }
                }
              }
            }
          }
        }
      }
    }

and here are the errors that I’m getting:

{
  "errors": [
    {
      "message": "Validation error of type UnknownArgument: Unknown field argument includeDeprecated @ '__schema/directives/args'",
      "locations": [
        {
          "line": 15,
          "column": 16
        }
      ],
      "extensions": {
        "classification": "ValidationError"
      }
    },
    {
      "message": "Validation error of type FieldUndefined: Field 'specifiedByURL' in type '__Type' is undefined @ 'FullType/specifiedByURL'",
      "locations": [
        {
          "line": 26,
          "column": 7
        }
      ],
      "extensions": {
        "classification": "ValidationError"
      }
    },
    {
      "message": "Validation error of type UnknownArgument: Unknown field argument includeDeprecated @ 'FullType/fields/args'",
      "locations": [
        {
          "line": 30,
          "column": 14
        }
      ],
      "extensions": {
        "classification": "ValidationError"
      }
    },
    {
      "message": "Validation error of type UnknownArgument: Unknown field argument includeDeprecated @ 'FullType/inputFields'",
      "locations": [
        {
          "line": 39,
          "column": 19
        }
      ],
      "extensions": {
        "classification": "ValidationError"
      }
    },
    {
      "message": "Validation error of type FieldUndefined: Field 'isDeprecated' in type '__InputValue' is undefined @ 'InputValue/isDeprecated'",
      "locations": [
        {
          "line": 61,
          "column": 7
        }
      ],
      "extensions": {
        "classification": "ValidationError"
      }
    },
    {
      "message": "Validation error of type FieldUndefined: Field 'deprecationReason' in type '__InputValue' is undefined @ 'InputValue/deprecationReason'",
      "locations": [
        {
          "line": 62,
          "column": 7
        }
      ],
      "extensions": {
        "classification": "ValidationError"
      }
    }
  ]
}

I am using:

<dependency>
                <groupId>com.netflix.graphql.dgs</groupId>
                <artifactId>graphql-dgs-platform-dependencies</artifactId>
                <version>4.1.0</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

And I was able to get the following link from the console: https://unpkg.com/graphiql@1.5.9/graphiql.min.js

Let me know if I can provide any more information regarding this issue.

Thank you!

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Reactions:1
  • Comments:17 (7 by maintainers)

github_iconTop GitHub Comments

1reaction
acaocommented, Dec 6, 2021

fixed!

0reactions
acaocommented, Dec 7, 2021

@myronmarston your graphql schema needs to support __Schema.description field for the latest release few patch releases.

I’m preparing a fix that makes this an opt-in feature, as I wasn’t aware that so many graphql schemas do not support this feature on introspection yet.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Why You Should Disable GraphQL Introspection In Production
Once your graph is up and running in production, like anything else on the internet, it's a good idea to implement precautions to...
Read more >
GraphQL Relay introspection query fails: Unknown field ...
I have a React application with a GraphQL client (Relay). I need to make an introspection query to get all the types of...
Read more >
How to exploit GraphQL endpoint: introspection, query ...
How to exploit a GraphQL endpoint. How to perform Introspection and Mutations? Learn more about tools, bathing attacks, fuzzing and IDORs!
Read more >
Why and how to disable introspection query for GraphQL APIs
To disable all types of introspection in this implementation, use the example below. GraphQLSchema schema = GraphQLSchema.newSchema ...
Read more >
graphql/utilities
The graphql/utilities module contains common useful computations to use with ... A GraphQL introspection query containing enough information to reproduce a ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found