Skip to content

GraphQLSyntaxError When An Object Type Is Implementing Multiple Interfaces #235

@alxjhnsn

Description

@alxjhnsn

Hi team!

I have a program that is comparing schemas, and it's currently failing when loading and parsing a schema that has a type implementing multiple interfaces:

Traceback (most recent call last): File "/Workspace/devops/graphql_diff/venv/lib/python3.11/site-packages/graphql/utilities/build_ast_schema.py", line 96, in build_schema parse( File "/Workspace/devops/graphql_diff/venv/lib/python3.11/site-packages/graphql/language/parser.py", line 113, in parse return parser.parse_document() ^^^^^^^^^^^^^^^^^^^^^^^ File "/Workspace/devops/graphql_diff/venv/lib/python3.11/site-packages/graphql/language/parser.py", line 241, in parse_document definitions=self.many(TokenKind.SOF, self.parse_definition, TokenKind.EOF), ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Workspace/devops/graphql_diff/venv/lib/python3.11/site-packages/graphql/language/parser.py", line 1156, in many append(parse_fn()) ^^^^^^^^^^ File "/Workspace/devops/graphql_diff/venv/lib/python3.11/site-packages/graphql/language/parser.py", line 302, in parse_definition raise self.unexpected(keyword_token) graphql.error.syntax_error.GraphQLSyntaxError: Syntax Error: Unexpected Name 'DealBookEndPageFields'. GraphQL request:1988:61 1987 | 1988 | type EndPageNode implements PageBaseFields, EndPageFields { | ^ 1989 | id: Int! 

Here are the types causing the failure:

interface PageBaseFields { id: Int! name: String! order: Int! layout: PageLayoutEnum! background: String showPageNumber: Boolean showBookmarks: Boolean includeInBookmarks: Boolean hideable: Boolean deletable: Boolean locked: Boolean } interface PageFields { image: String content: String! cards: [String] } type EndPageNode implements PageBaseFields, EndPageFields { id: Int! name: String! order: Int! layout: PageLayoutEnum! background: String showPageNumber: Boolean showBookmarks: Boolean includeInBookmarks: Boolean hideable: Boolean deletable: Boolean locked: Boolean image: String content: String! cards: [String] } 

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions