graphgate icon indicating copy to clipboard operation
graphgate copied to clipboard

Failed to update schema. error=Redefining the schema is not allowed.

Open guicostaarantes opened this issue 2 years ago • 2 comments
trafficstars

If my understanding is correct, this error is being thrown here because my subgraphs are using a recent version of async-graphql that supports Federation v2, thus their SDLs have a extension for the schema (as they should based on this code).

Expected Behavior

Supergraph should accept SDLs following Apollo Federation v2.

Actual Behavior

Server returns all requests with {"data": null,"errors": [{"message": "Not ready."}]} and logs ERROR Failed to update schema. error=Redefining the schema is not allowed.

Steps to Reproduce the Problem

  1. Clone the repo.
  2. Run docker build -t graphgate-with-examples -f Dockerfile-standalone-demo .. I was getting errors so had to change versions of rust and ubuntu to latest.
  3. Run docker run --name graphgate-issue-27 -d -p 8000:8000 -p 8001:8001 -p 8002:8002 -p 8003:8003 graphgate-with-examples.
  4. Notice that the supergraph runs as expected. Also notice that running query{_service {sdl}} against the individual subgraphs does NOT return extend schema @link...
  5. Run docker stop graphgate-issue-27 && docker rm graphgate-issue-27
  6. Open Cargo.toml and change versions of async-graphql and async-graphql-warp to 5.0.8.
  7. Run docker build -t graphgate-with-examples -f Dockerfile-standalone-demo ..
  8. Run docker run --name graphgate-issue-27 -d -p 8000:8000 -p 8001:8001 -p 8002:8002 -p 8003:8003 graphgate-with-examples.
  9. Notice that the supergraph doesn't work. Also notice that running query{_service {sdl}} against the individual subgraphs returns extend schema @link... (which I think is causing the issue)
  10. Run docker stop graphgate-issue-27 && docker rm graphgate-issue-27 to clean up

Specifications

  • Version: 0.5.1
  • Platform: Mac
  • Subsystem: idk

guicostaarantes avatar May 09 '23 19:05 guicostaarantes

I was able to fix the behavior by just erasing this line of code, but I understand that a more robust fix may be needed to correctly compose the schema.

guicostaarantes avatar May 10 '23 19:05 guicostaarantes

@guicostaarantes I merged a good fix from @jgautheron into my fork https://gitlab.com/oss47/graphgate - if you are interested, we can use and maintain it together.

It's also available in docker registry: registry.gitlab.com/oss47/graphgate

humb1t avatar Oct 23 '23 08:10 humb1t