GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — Schema generator reports false positive unsatisfiable input object cycle · Issue #4214 · graphql-java/graphql-java

Schema generator reports false positive unsatisfiable input object cycle #4214

New issue
Copy link
New issue
Copy link
Closed
#4386
Closed
Schema generator reports false positive unsatisfiable input object cycle#4214
#4386
Copy link
Labels
keep-openTells Stale Bot to keep PRs and issues openTells Stale Bot to keep PRs and issues open

Description

@RafeArnold
RafeArnold
opened on Jan 23, 2026
Issue body actions

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, run the following code:

import graphql.schema.idl.NoopWiringFactory;
import graphql.schema.idl.RuntimeWiring;
import graphql.schema.idl.SchemaGenerator;
import graphql.schema.idl.SchemaParser;

public class Main {
    public static void main(String[] args) {
        String query = """
                  input Example {
                    self: [Example!]!
                    value: String
                  }
                
                  type Query {
                    example(example: Example): String
                  }
                """.stripIndent();
        TypeDefinitionRegistry typeDefinitionRegistry = new SchemaParser().parse(query);
        RuntimeWiring runtimeWiring = RuntimeWiring.newRuntimeWiring().wiringFactory(new NoopWiringFactory()).build();
        new SchemaGenerator().makeExecutableSchema(typeDefinitionRegistry, runtimeWiring);
    }
}

Observe an InvalidSchemaException is thrown with the message [self!] forms an unsatisfiable cycle

Activity

  1. dondonz
    added a commit that references this issue on Mar 9, 2026

    Fix #4214: Non-null list types should not be treated as unsatisfiable…

    This issue will close once commit 2cca660 is merged into the 'master' branch.
    2cca660
  2. github-actions commented on Mar 25, 2026

    @github-actions
    github-actionsBot
    on Mar 25, 2026 – with GitHub Actions
    Contributor
    More actions

    Hello, this issue has been inactive for 60 days, so we're marking it as stale. If you would like to continue this discussion, please comment within the next 30 days or we'll close the issue.

  3. github-actions
    added
    Stale
    on Mar 25, 2026
  4. RafeArnold commented on Mar 25, 2026

    @RafeArnold
    RafeArnold
    on Mar 25, 2026
    ContributorAuthor
    More actions

    2cca660 appears to be a fix for this issue. Is it possible for this to be merged, @dondonz?

  5. dondonz
    added
    keep-openTells Stale Bot to keep PRs and issues openTells Stale Bot to keep PRs and issues open
    and removed
    Stale
    on Mar 25, 2026
  6. dondonz commented on Mar 25, 2026

    @dondonz
    dondonz
    on Mar 25, 2026
    Member
    More actions

    Hello thanks for reporting, will come back to this shortly

  7. andimarek commented on May 19, 2026

    @andimarek
    andimarek
    on May 19, 2026
    Member
    More actions

    Verified against current master: this is still reproducible. Adding the SDL regression test for the issue fails with [self!] forms an unsatisfiable cycle before the fix.

    Opened #4386 with the fix and regression coverage.

    Reacted by rafe
  8. andimarek
    closed this as completedin #4386on May 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    keep-openTells Stale Bot to keep PRs and issues openTells Stale Bot to keep PRs and issues open

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions

      You are visitor 01402503 — GeezerVison does not store the pages you look up.
      Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.