-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Fix (#4283 #3582): Union with interfaces issue #4298
[WIP] Fix (#4283 #3582): Union with interfaces issue #4298
Conversation
… having no interface
@mpospelov: Thank you for submitting a pull request! Before we can merge it, you'll need to sign the Apollo Contributor License Agreement here: https://contribute.apollographql.com/ |
8eb655b
to
05875b4
Compare
05875b4
to
4e72fb3
Compare
@abernix Hello 👋 Could you elaborate on the reason this PR is closed? |
Unintentional closing! Please stand-by: #4304 |
@abernix could you please take a look? we need this soon 😄 |
I got the same issue after I upgrade over v0.11.x version. Hope that it can be merged asap! |
This optimization is broken even more than we expected, further fixes are required. |
@trevor-scheer maybe you can also take a look? |
Hey @mpospelov, thank you for hard work on this (and anyone else involved!). I can't guarantee how soon I can give this the attention it deserves, but it's high on my list. For context, (GraphQL Summit)[https://summit.graphql.com/] is right around the corner and we're all quite busy for the next couple weeks. Hope to see you there! |
Hey @trevor-scheer 👋
in The issue is that I can't see how those cases can be distinguished based on existing arguments. The gist of the problem is that UPD Added another failing test case when query have a fragment on interface that is only defined on other services and is unknown to the service owning the root field of the query:
|
Hi @trevor-scheer 👋 |
Hi @trevor-scheer @abernix 👋 |
The gateway code moved to the https://github.com/apollographql/federation repository a few years ago. Sorry for the delay! |
Purpose
This is a bugfix for #4283 issue
Root cause
The problem comes from the following optimization #3582
The idea of optimization is to prevent expanding interfaces if it's possible, the problem that this case also appears where it should not - when types are defined in separate services.
As a result, this optimization leads to ignoring fetching from external services
Kudos to @id-ilych for finding a solution!
Thanks for your hard work! 🚀 And hope you will find this bug fix useful 😉