Title: Schema generator reports false positive unsatisfiable input object cycle · Issue #4214 · graphql-java/graphql-java · GitHub
Open Graph Title: Schema generator reports false positive unsatisfiable input object cycle · Issue #4214 · graphql-java/graphql-java
X Title: Schema generator reports false positive unsatisfiable input object cycle · Issue #4214 · graphql-java/graphql-java
Description: Per the spec, cyclic input object fields of non-nullable list type with non-nullable items are valid since the field value can be an empty list. However, the NoUnbrokenInputCycles rule reports these input objects as invalid. To reproduce...
Open Graph Description: Per the spec, cyclic input object fields of non-nullable list type with non-nullable items are valid since the field value can be an empty list. However, the NoUnbrokenInputCycles rule reports thes...
X Description: Per the spec, cyclic input object fields of non-nullable list type with non-nullable items are valid since the field value can be an empty list. However, the NoUnbrokenInputCycles rule reports thes...
Opengraph URL: https://github.com/graphql-java/graphql-java/issues/4214
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Schema generator reports false positive unsatisfiable input object cycle","articleBody":"[Per the spec](https://spec.graphql.org/draft/#example-2f832), cyclic input object fields of non-nullable list type with non-nullable items are valid since the field value can be an empty list. However, the `NoUnbrokenInputCycles` rule reports these input objects as invalid.\n\nTo reproduce, run the following code:\n```java\nimport graphql.schema.idl.NoopWiringFactory;\nimport graphql.schema.idl.RuntimeWiring;\nimport graphql.schema.idl.SchemaGenerator;\nimport graphql.schema.idl.SchemaParser;\n\npublic class Main {\n public static void main(String[] args) {\n String query = \"\"\"\n input Example {\n self: [Example!]!\n value: String\n }\n \n type Query {\n example(example: Example): String\n }\n \"\"\".stripIndent();\n TypeDefinitionRegistry typeDefinitionRegistry = new SchemaParser().parse(query);\n RuntimeWiring runtimeWiring = RuntimeWiring.newRuntimeWiring().wiringFactory(new NoopWiringFactory()).build();\n new SchemaGenerator().makeExecutableSchema(typeDefinitionRegistry, runtimeWiring);\n }\n}\n```\nObserve an `InvalidSchemaException` is thrown with the message `[self!] forms an unsatisfiable cycle`\n","author":{"url":"https://github.com/RafeArnold","@type":"Person","name":"RafeArnold"},"datePublished":"2026-01-23T11:47:37Z","url":"https://github.com/graphql-java/graphql-java/issues/4214"}
| react-profiling | 0 |
| react-import-map | react,react-dom,react-dom/client,react-dom/profiling,react-is,react-reconciler,react/compiler-runtime,react/jsx-dev-runtime,react/jsx-runtime,scheduler@d5750093facf |
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:41c6fc84-853d-63e6-8485-088308228df4 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | D2B0:D9695:A3F256:D5A5E6:6AED4184 |
| html-safe-nonce | 370f21d725d3d29bd768fb0bb93e4bf0308638d18630c37af5df3b0473c6e90c |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJEMkIwOkQ5Njk1OkEzRjI1NjpENUE1RTY6NkFFRDQxODQiLCJ2aXNpdG9yX2lkIjoiNTk4MDE3OTU0ODM5MTQyNDM4OCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | 906b24332059adbeb0816508db5163dc3df97be2b2cba40e5b40747d5e0af455 |
| hovercard-subject-tag | issue:3847123848 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/graphql-java/graphql-java/4214/issue_layout |
| twitter:image | https://opengraph.githubassets.com/d016dfb5eae8a3f7985aceff85e0f6149c5c138f45c51468227b4893018b8cca/graphql-java/graphql-java/issues/4214 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/d016dfb5eae8a3f7985aceff85e0f6149c5c138f45c51468227b4893018b8cca/graphql-java/graphql-java/issues/4214 |
| og:image:alt | Per the spec, cyclic input object fields of non-nullable list type with non-nullable items are valid since the field value can be an empty list. However, the NoUnbrokenInputCycles rule reports thes... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | RafeArnold |
| hostname | github.com |
| expected-hostname | github.com |
| None | 26c92a9388ddfad3fa88d132b5d5f0b4747030233dcc4e5efb05f1cbae152184 |
| turbo-cache-control | no-preview |
| go-import | github.com/graphql-java/graphql-java git https://github.com/graphql-java/graphql-java.git |
| octolytics-dimension-user_id | 14289921 |
| octolytics-dimension-user_login | graphql-java |
| octolytics-dimension-repository_id | 38602457 |
| octolytics-dimension-repository_nwo | graphql-java/graphql-java |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 38602457 |
| octolytics-dimension-repository_network_root_nwo | graphql-java/graphql-java |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | c629ad99c254d306375fc8354d04321c2c362236 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
| react-app-name | issues |
Links:
Viewport: width=device-width