How to create a supergraph with Apollo Federation V1

I tried to reproduce on local environment steps described at Federation quickstart - Federation - Apollo GraphQL Docs, and failed miserably.

All three options:

  • ServiceList
  • Generating GraphQL files with rover introspect and then providing supergraphSdl
  • Managed

All of them fails with an error message like

Field “Mutation.testField” can only be defined once.

My env:
Rover 0.4.1
apollo/gateway 0.44.1
My subgraphs are in RoR and work just fine, when tested using GraphiQL

My scenario:
Create two federated subgraphs.
Use Apollo Server as a gateway.

The error message is pretty easy to debug.
rover subgraph introspect returns Mutation and Query separately.

Do I miss some kind of undocumented switch?
Why do Rover and Cloud don’t support merging of subgraph definitions?
The documentation describes it as it should work with Apollo Federation V1.

I tried V2, and it works with cloud and serviceList without any issues.
I didn’t try supergraphSdl solution, due to the rover merge issues described above.
What’s the planned V2 release roadmap?

This is a bump message.

Hello! To confirm, have you defined the following field in multiple subgraph schemas?

Mutation {
  testField: String # (or any other return type)

If so, this is indeed an error in Federation 1, because each field of the Query and Mutation types must be defined in exactly one subgraph. I’ll clarify this in the documentation.

As for Federation 2, there is currently no published timeline for its full release, but the roadmap is available here.

Let us know if you continue to encounter composition errors after making this change! If so, providing relevant portions of your schemas will be helpful.