graphql-java-tools icon indicating copy to clipboard operation
graphql-java-tools copied to clipboard

Expected type to be a GraphQLInputType, but it wasn't!

Open afuyo opened this issue 4 years ago • 5 comments

Description

Mutations with nested input types generate errors see below. I've tried the workarounds with dummy methods but it generates stack overflow instead. The thing is that I have two schemas and both contain nested input types, but I run into the problems with only one of them. The one that is slightly complicated and closer to the real life;)

Expected behavior

Actual behavior

Caused by: graphql.kickstart.tools.SchemaError: Expected type 'InsuranceAgreementCreateOneWithoutInsuranceAgreement_IncludedAgreementInput' to be a GraphQLInputType, but it wasn't! Was a type only permitted for object types incorrectly used as an input type, or vice-versa? at graphql.kickstart.tools.SchemaParser.determineInputType(SchemaParser.kt:419) ~[graphql-java-tools-6.2.0.jar:na] at graphql.kickstart.tools.SchemaParser.determineInputType(SchemaParser.kt:402) ~[graphql-java-tools-6.2.0.jar:na] at graphql.kickstart.tools.SchemaParser.createInputObject(SchemaParser.kt:176) ~[graphql-java-tools-6.2.0.jar:na] at graphql.kickstart.tools.SchemaParser.determineInputType(SchemaParser.kt:428) ~[graphql-java-tools-6.2.0.jar:na] at graphql.kickstart.tools.SchemaParser.determineInputType(SchemaParser.kt:402) ~[graphql-java-tools-6.2.0.jar:na] at graphql.kickstart.tools.SchemaParser.createInputObject(SchemaParser.kt:176) ~[graphql-java-tools-6.2.0.jar:na] at graphql.kickstart.tools.SchemaParser.determineInputType(SchemaParser.kt:428) ~[graphql-java-tools-6.2.0.jar:na] at graphql.kickstart.tools.SchemaParser.determineInputType(SchemaParser.kt:402) ~[graphql-java-tools-6.2.0.jar:na] at graphql.kickstart.tools.SchemaParser.createInputObject(SchemaParser.kt:176) ~[graphql-java-tools-6.2.0.jar:na] at graphql.kickstart.tools.SchemaParser.parseSchemaObjects(SchemaParser.kt:79) ~[graphql-java-tools-6.2.0.jar:na] at graphql.kickstart.tools.SchemaParser.makeExecutableSchema(SchemaParser.kt:112) ~[graphql-java-tools-6.2.0.jar:na] at

Steps to reproduce the bug

  1. failsagreement schema with corresponding FailsAgreement.java resolvers is the one generating errors.
  2. worksperson schema with corresponding WorksPerson.java resolvers works fine.
  3. Both schemas contain same kind of nested input types and programmatically generated. Both schemas run fine on Prisma backend.

Source code: https://github.com/afuyo/grapql-mutations-on-Kafka

Would be grateful for any input.

/Artur

afuyo avatar Feb 06 '21 09:02 afuyo

I met the same bug with latest version graphql-java-tools. Workaround with method referencing nested input types works for me. I just wrote something like type Query { dummy(input1: Input1, input2: Input2...): Boolean }, added a trivial implementation and the error is gone. But this bug is quite annoying.

npokr avatar Nov 07 '21 15:11 npokr

Also running into this adding the dummy query worked. But very annoying though to have to do this including all input types with nested inputs :/

tinawu0603 avatar Feb 02 '22 16:02 tinawu0603

This is still not working , Anybody have proper steps to resolve it . Please post it ..

Mahesh-mns avatar Mar 23 '22 15:03 Mahesh-mns

Anyone mind putting a sample on how to workaround this?

trung-lai-by avatar Apr 03 '22 18:04 trung-lai-by