nestjs / graphql

GraphQL (TypeScript) module for Nest framework (node.js) 🍷
https://docs.nestjs.com/graphql/quick-start
MIT License
1.45k stars 391 forks source link

Subscriptions not working properly with Mercurius Federation #2162

Open all2pie opened 2 years ago

all2pie commented 2 years ago

Is there an existing issue for this?

Current behavior

The subscription of individual service works fine directly but it is not working with Federation gateway

Minimum reproduction code

https://github.com/all2pie/Nestjs-Mercurius-Federation-Subscription-Bug

Steps to reproduce

subscription url: ws://localhost/graphql

Expected behavior

Subscriptions should work correctly

Package version

10.0.10

Graphql version

"@apollo/subgraph": "^0.4.2",
"@nestjs/common": "^8.0.0",
"@nestjs/core": "^8.0.0",
"@nestjs/graphql": "^10.0.10",
"@nestjs/mercurius": "^10.0.9",
"@nestjs/platform-fastify": "^8.4.4",
"graphql": "^16.4.0",
"mercurius": "^9.3.6",

NestJS version

8.2.2

Node.js version

16.14.0

In which operating systems have you tested?

Other

No response

Crhis35 commented 1 year ago

Same here

sushilkjaiswar commented 1 year ago

Any update on this issue?

I did some digging and found that the issue is from @apollo/subgraph where subscription fields are not at all being processed to attach subscription resolvers. I have raised an issue on apollo github repository for an answer. So far I have not found any article or document for the reason of subscription fields not being the part of buildSchemaFromSDL since I have build api as a schema first approach. After tweaking buildSchemaFromSDL file I am able to make the feature work.

asanovr commented 1 year ago

@sushilkjaiswar Could you share the code, please?