You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I am using graphiql with spring-boot-graphql-starter, however I am getting an error even with the simple schema. Can you please verify what is wrong with the response from introspection? Thank you.
Error:
{
"errors": [
{
"message": "Introspection result missing interfaces: { kind: \"OBJECT\", name: \"Deployment\", fields: [[Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], ... 5 more items] }.",
"stack": "Error: Introspection result missing interfaces: { kind: \"OBJECT\", name: \"Deployment\", fields: [[Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], [Object], ... 5 more items] }.\n at buildImplementationsList (https://unpkg.com/graphiql/graphiql.min.js:33298:13)\n at interfaces (https://unpkg.com/graphiql/graphiql.min.js:33306:25)\n at resolveReadonlyArrayThunk (https://unpkg.com/graphiql/graphiql.min.js:29728:40)\n at defineInterfaces (https://unpkg.com/graphiql/graphiql.min.js:29908:22)\n at GraphQLObjectType._interfaces (https://unpkg.com/graphiql/graphiql.min.js:29868:30)\n at GraphQLObjectType.getInterfaces (https://unpkg.com/graphiql/graphiql.min.js:29882:31)\n at collectReferencedTypes (https://unpkg.com/graphiql/graphiql.min.js:32130:45)\n at new GraphQLSchema (https://unpkg.com/graphiql/graphiql.min.js:31973:9)\n at Object.buildClientSchema (https://unpkg.com/graphiql/graphiql.min.js:33212:10)\n at https://unpkg.com/graphiql/graphiql.min.js:64435:23"
}
]
}
Instrospected schema:
{
"data": {
"__schema": {
"queryType": {
"name": "Query"
},
"types": [
{
"kind": "SCALAR",
"name": "Boolean",
"description": "Built-in Boolean"
},
{
"kind": "OBJECT",
"name": "Query",
"fields": [
{
"name": "getAll",
"type": {
"kind": "SCALAR",
"name": "String"
},
"isDeprecated": false
}
]
},
{
"kind": "SCALAR",
"name": "String",
"description": "Built-in String"
},
{
"kind": "OBJECT",
"name": "__Directive",
"fields": [
{
"name": "name",
"description": "The __Directive type represents a Directive that a server supports.",
"type": {
"kind": "NON_NULL",
"ofType": {
"kind": "SCALAR",
"name": "String"
}
},
"isDeprecated": false
},
{
"name": "description",
"type": {
"kind": "SCALAR",
"name": "String"
},
"isDeprecated": false
},
{
"name": "isRepeatable",
"type": {
"kind": "NON_NULL",
"ofType": {
"kind": "SCALAR",
"name": "Boolean"
}
},
"isDeprecated": false
},
{
"name": "locations",
"type": {
"kind": "NON_NULL",
"ofType": {
"kind": "LIST",
"ofType": {
"kind": "NON_NULL",
"ofType": {
"kind": "ENUM",
"name": "__DirectiveLocation"
}
}
}
},
"isDeprecated": false
},
{
"name": "args",
"args": [
{
"name": "includeDeprecated",
"type": {
"kind": "SCALAR",
"name": "Boolean"
},
"defaultValue": "false"
}
],
"type": {
"kind": "NON_NULL",
"ofType": {
"kind": "LIST",
"ofType": {
"kind": "NON_NULL",
"ofType": {
"kind": "OBJECT",
"name": "__InputValue"
}
}
}
},
"isDeprecated": false
}
]
},
{
"kind": "ENUM",
"name": "__DirectiveLocation",
"description": "An enum describing valid locations where a directive can be placed",
"enumValues": [
{
"name": "QUERY",
"description": "Indicates the directive is valid on queries.",
"isDeprecated": false
},
{
"name": "MUTATION",
"description": "Indicates the directive is valid on mutations.",
"isDeprecated": false
},
{
"name": "SUBSCRIPTION",
"description": "Indicates the directive is valid on subscriptions.",
"isDeprecated": false
},
{
"name": "FIELD",
"description": "Indicates the directive is valid on fields.",
"isDeprecated": false
},
{
"name": "FRAGMENT_DEFINITION",
"description": "Indicates the directive is valid on fragment definitions.",
"isDeprecated": false
},
{
"name": "FRAGMENT_SPREAD",
"description": "Indicates the directive is valid on fragment spreads.",
"isDeprecated": false
},
{
"name": "INLINE_FRAGMENT",
"description": "Indicates the directive is valid on inline fragments.",
"isDeprecated": false
},
{
"name": "VARIABLE_DEFINITION",
"description": "Indicates the directive is valid on variable definitions.",
"isDeprecated": false
},
{
"name": "SCHEMA",
"description": "Indicates the directive is valid on a schema SDL definition.",
"isDeprecated": false
},
{
"name": "SCALAR",
"description": "Indicates the directive is valid on a scalar SDL definition.",
"isDeprecated": false
},
{
"name": "OBJECT",
"description": "Indicates the directive is valid on an object SDL definition.",
"isDeprecated": false
},
{
"name": "FIELD_DEFINITION",
"description": "Indicates the directive is valid on a field SDL definition.",
"isDeprecated": false
},
{
"name": "ARGUMENT_DEFINITION",
"description": "Indicates the directive is valid on a field argument SDL definition.",
"isDeprecated": false
},
{
"name": "INTERFACE",
"description": "Indicates the directive is valid on an interface SDL definition.",
"isDeprecated": false
},
{
"name": "UNION",
"description": "Indicates the directive is valid on an union SDL definition.",
"isDeprecated": false
},
{
"name": "ENUM",
"description": "Indicates the directive is valid on an enum SDL definition.",
"isDeprecated": false
},
{
"name": "ENUM_VALUE",
"description": "Indicates the directive is valid on an enum value SDL definition.",
"isDeprecated": false
},
{
"name": "INPUT_OBJECT",
"description": "Indicates the directive is valid on an input object SDL definition.",
"isDeprecated": false
},
{
"name": "INPUT_FIELD_DEFINITION",
"description": "Indicates the directive is valid on an input object field SDL definition.",
"isDeprecated": false
}
]
},
{
"kind": "OBJECT",
"name": "__EnumValue",
"fields": [
{
"name": "name",
"type": {
"kind": "NON_NULL",
"ofType": {
"kind": "SCALAR",
"name": "String"
}
},
"isDeprecated": false
},
{
"name": "description",
"type": {
"kind": "SCALAR",
"name": "String"
},
"isDeprecated": false
},
{
"name": "isDeprecated",
"type": {
"kind": "NON_NULL",
"ofType": {
"kind": "SCALAR",
"name": "Boolean"
}
},
"isDeprecated": false
},
{
"name": "deprecationReason",
"type": {
"kind": "SCALAR",
"name": "String"
},
"isDeprecated": false
}
]
},
{
"kind": "OBJECT",
"name": "__Field",
"fields": [
{
"name": "name",
"type": {
"kind": "NON_NULL",
"ofType": {
"kind": "SCALAR",
"name": "String"
}
},
"isDeprecated": false
},
{
"name": "description",
"type": {
"kind": "SCALAR",
"name": "String"
},
"isDeprecated": false
},
{
"name": "args",
"args": [
{
"name": "includeDeprecated",
"type": {
"kind": "SCALAR",
"name": "Boolean"
},
"defaultValue": "false"
}
],
"type": {
"kind": "NON_NULL",
"ofType": {
"kind": "LIST",
"ofType": {
"kind": "NON_NULL",
"ofType": {
"kind": "OBJECT",
"name": "__InputValue"
}
}
}
},
"isDeprecated": false
},
{
"name": "type",
"type": {
"kind": "NON_NULL",
"ofType": {
"kind": "OBJECT",
"name": "__Type"
}
},
"isDeprecated": false
},
{
"name": "isDeprecated",
"type": {
"kind": "NON_NULL",
"ofType": {
"kind": "SCALAR",
"name": "Boolean"
}
},
"isDeprecated": false
},
{
"name": "deprecationReason",
"type": {
"kind": "SCALAR",
"name": "String"
},
"isDeprecated": false
}
]
},
{
"kind": "OBJECT",
"name": "__InputValue",
"fields": [
{
"name": "name",
"type": {
"kind": "NON_NULL",
"ofType": {
"kind": "SCALAR",
"name": "String"
}
},
"isDeprecated": false
},
{
"name": "description",
"type": {
"kind": "SCALAR",
"name": "String"
},
"isDeprecated": false
},
{
"name": "type",
"type": {
"kind": "NON_NULL",
"ofType": {
"kind": "OBJECT",
"name": "__Type"
}
},
"isDeprecated": false
},
{
"name": "defaultValue",
"type": {
"kind": "SCALAR",
"name": "String"
},
"isDeprecated": false
},
{
"name": "isDeprecated",
"type": {
"kind": "SCALAR",
"name": "Boolean"
},
"isDeprecated": false
},
{
"name": "deprecationReason",
"type": {
"kind": "SCALAR",
"name": "String"
},
"isDeprecated": false
}
]
},
{
"kind": "OBJECT",
"name": "__Schema",
"description": "A GraphQL Introspection defines the capabilities of a GraphQL server. It exposes all available types and directives on the server, the entry points for query, mutation, and subscription operations.",
"fields": [
{
"name": "description",
"type": {
"kind": "SCALAR",
"name": "String"
},
"isDeprecated": false
},
{
"name": "types",
"description": "A list of all types supported by this server.",
"type": {
"kind": "NON_NULL",
"ofType": {
"kind": "LIST",
"ofType": {
"kind": "NON_NULL",
"ofType": {
"kind": "OBJECT",
"name": "__Type"
}
}
}
},
"isDeprecated": false
},
{
"name": "queryType",
"description": "The type that query operations will be rooted at.",
"type": {
"kind": "NON_NULL",
"ofType": {
"kind": "OBJECT",
"name": "__Type"
}
},
"isDeprecated": false
},
{
"name": "mutationType",
"description": "If this server supports mutation, the type that mutation operations will be rooted at.",
"type": {
"kind": "OBJECT",
"name": "__Type"
},
"isDeprecated": false
},
{
"name": "directives",
"description": "'A list of all directives supported by this server.",
"type": {
"kind": "NON_NULL",
"ofType": {
"kind": "LIST",
"ofType": {
"kind": "NON_NULL",
"ofType": {
"kind": "OBJECT",
"name": "__Directive"
}
}
}
},
"isDeprecated": false
},
{
"name": "subscriptionType",
"description": "'If this server support subscription, the type that subscription operations will be rooted at.",
"type": {
"kind": "OBJECT",
"name": "__Type"
},
"isDeprecated": false
}
]
},
{
"kind": "OBJECT",
"name": "__Type",
"fields": [
{
"name": "kind",
"type": {
"kind": "NON_NULL",
"ofType": {
"kind": "ENUM",
"name": "__TypeKind"
}
},
"isDeprecated": false
},
{
"name": "name",
"type": {
"kind": "SCALAR",
"name": "String"
},
"isDeprecated": false
},
{
"name": "description",
"type": {
"kind": "SCALAR",
"name": "String"
},
"isDeprecated": false
},
{
"name": "fields",
"args": [
{
"name": "includeDeprecated",
"type": {
"kind": "SCALAR",
"name": "Boolean"
},
"defaultValue": "false"
}
],
"type": {
"kind": "LIST",
"ofType": {
"kind": "NON_NULL",
"ofType": {
"kind": "OBJECT",
"name": "__Field"
}
}
},
"isDeprecated": false
},
{
"name": "interfaces",
"type": {
"kind": "LIST",
"ofType": {
"kind": "NON_NULL",
"ofType": {
"kind": "OBJECT",
"name": "__Type"
}
}
},
"isDeprecated": false
},
{
"name": "possibleTypes",
"type": {
"kind": "LIST",
"ofType": {
"kind": "NON_NULL",
"ofType": {
"kind": "OBJECT",
"name": "__Type"
}
}
},
"isDeprecated": false
},
{
"name": "enumValues",
"args": [
{
"name": "includeDeprecated",
"type": {
"kind": "SCALAR",
"name": "Boolean"
},
"defaultValue": "false"
}
],
"type": {
"kind": "LIST",
"ofType": {
"kind": "NON_NULL",
"ofType": {
"kind": "OBJECT",
"name": "__EnumValue"
}
}
},
"isDeprecated": false
},
{
"name": "inputFields",
"args": [
{
"name": "includeDeprecated",
"type": {
"kind": "SCALAR",
"name": "Boolean"
},
"defaultValue": "false"
}
],
"type": {
"kind": "LIST",
"ofType": {
"kind": "NON_NULL",
"ofType": {
"kind": "OBJECT",
"name": "__InputValue"
}
}
},
"isDeprecated": false
},
{
"name": "ofType",
"type": {
"kind": "OBJECT",
"name": "__Type"
},
"isDeprecated": false
},
{
"name": "specifiedByURL",
"type": {
"kind": "SCALAR",
"name": "String"
},
"isDeprecated": false
},
{
"name": "specifiedByUrl",
"type": {
"kind": "SCALAR",
"name": "String"
},
"isDeprecated": true,
"deprecationReason": "This legacy name has been replaced by `specifiedByURL`"
}
]
},
{
"kind": "ENUM",
"name": "__TypeKind",
"description": "An enum describing what kind of type a given __Type is",
"enumValues": [
{
"name": "SCALAR",
"description": "Indicates this type is a scalar. 'specifiedByURL' is a valid field",
"isDeprecated": false
},
{
"name": "OBJECT",
"description": "Indicates this type is an object. `fields` and `interfaces` are valid fields.",
"isDeprecated": false
},
{
"name": "INTERFACE",
"description": "Indicates this type is an interface. `fields` and `possibleTypes` are valid fields.",
"isDeprecated": false
},
{
"name": "UNION",
"description": "Indicates this type is a union. `possibleTypes` is a valid field.",
"isDeprecated": false
},
{
"name": "ENUM",
"description": "Indicates this type is an enum. `enumValues` is a valid field.",
"isDeprecated": false
},
{
"name": "INPUT_OBJECT",
"description": "Indicates this type is an input object. `inputFields` is a valid field.",
"isDeprecated": false
},
{
"name": "LIST",
"description": "Indicates this type is a list. `ofType` is a valid field.",
"isDeprecated": false
},
{
"name": "NON_NULL",
"description": "Indicates this type is a non-null. `ofType` is a valid field.",
"isDeprecated": false
}
]
}
],
"directives": [
{
"name": "include",
"description": "Directs the executor to include this field or fragment only when the `if` argument is true",
"locations": [
"FIELD",
"FRAGMENT_SPREAD",
"INLINE_FRAGMENT"
],
"args": [
{
"name": "if",
"description": "Included when true.",
"type": {
"kind": "NON_NULL",
"ofType": {
"kind": "SCALAR",
"name": "Boolean"
}
}
}
]
},
{
"name": "skip",
"description": "Directs the executor to skip this field or fragment when the `if` argument is true.",
"locations": [
"FIELD",
"FRAGMENT_SPREAD",
"INLINE_FRAGMENT"
],
"args": [
{
"name": "if",
"description": "Skipped when true.",
"type": {
"kind": "NON_NULL",
"ofType": {
"kind": "SCALAR",
"name": "Boolean"
}
}
}
]
},
{
"name": "deprecated",
"description": "Marks the field, argument, input field or enum value as deprecated",
"locations": [
"FIELD_DEFINITION",
"ARGUMENT_DEFINITION",
"ENUM_VALUE",
"INPUT_FIELD_DEFINITION"
],
"args": [
{
"name": "reason",
"description": "The reason for the deprecation",
"type": {
"kind": "SCALAR",
"name": "String"
},
"defaultValue": "\"No longer supported\""
}
]
},
{
"name": "specifiedBy",
"description": "Exposes a URL that specifies the behaviour of this scalar.",
"locations": [
"SCALAR"
],
"args": [
{
"name": "url",
"description": "The URL that specifies the behaviour of this scalar.",
"type": {
"kind": "NON_NULL",
"ofType": {
"kind": "SCALAR",
"name": "String"
}
}
}
]
}
]
}
}
}
Schema:
type Query {
getAll: String
}
The text was updated successfully, but these errors were encountered:
This might be a bug in the spring-boot starter, the error is basically saying that the interfaces property is missing from the Deployment Object type. GraphiQL tries to do an introspection, it gets a set of object-types but the nullable interfaces array seems to be undefined, i.e. the key isn't present.
I am using
graphiql
withspring-boot-graphql-starter
, however I am getting an error even with the simple schema. Can you please verify what is wrong with the response from introspection? Thank you.Error:
Instrospected schema:
Schema:
The text was updated successfully, but these errors were encountered: