graphql-mesh icon indicating copy to clipboard operation
graphql-mesh copied to clipboard

Mesh seems to be sending unrelated subscription query fields to subgraphs when the sub type is a union

Open dpnova opened this issue 1 year ago • 3 comments

Issue workflow progress

Progress of the issue based on the Contributor Workflow

  • [x] 1. The issue provides a reproduction available on: CodeSandBox
  • [ ] 2. A failing test has been provided
  • [ ] 3. A local solution has been provided
  • [ ] 4. A pull request is pending review

Describe the bug

When creating a merged subscription type that is itself a union, mesh can serve the type fine when the resolvers are defined in additionalResolvers, but when they come from separate subgraph services, it errors out when you make the subscription query. See last line in this image:

image

To Reproduce Steps to reproduce the behavior:

Repro is here

use this query:

subscription {
  sync {
    __typename
    ... on Page {
      name
    }
    ... on User {
      id
    }
  }
}

Expected behavior

I would expect mesh to be able to accept the subscription request the way it does when the resolvers are defined in additionalResolvers

Environment: All relevant environment is in the codesandbox.

dpnova avatar Jul 03 '24 02:07 dpnova

I think you didn't update the Sandbox link. Could you check? Thanks for creating the issue!

ardatan avatar Jul 03 '24 15:07 ardatan

Oh sorry, first time I've used it.. Let me check

edit: ok link updated

dpnova avatar Jul 03 '24 21:07 dpnova

In my local I had added more logging to mesh and the type error seems to happen during the processing for the other subgraph if that makes sense? In my example subscription above I see the error for name while the User part of the query is happening.

dpnova avatar Jul 03 '24 21:07 dpnova