@apollo/federation-internals@2.14.0
Minor Changes
-
Relax
@interfaceObjectvalidation for Fed 1 subgraphs. (#3392)Previously, any use of
@interfaceObjectin a Fed 2 subgraph caused anINTERFACE_OBJECT_USAGE_ERRORif any Fed 1 subgraph was present in the composition, regardless of whether the types conflicted.The check is now per-type: an error is only raised when a Fed 2 subgraph uses
@interfaceObjecton typeTand a Fed 1 subgraph has@keyon an interface also namedT.@keyon an interface in a Fed 1 subgraph does not mean it can fulfill the__typename-resolution requirement that@interfaceObjectdepends on — but they are otherwise compatible with@interfaceObjectusage on unrelated types. -
Add validations for
@linkusages to prevent name conflicts. (#3430)This change helps to avoid ambiguity for downstream
@link-consuming code, which previously may have found different results for a spec schema element depending on search order. If your composition fails after this change, please rename conflicting elements via@link(import:)and conflicting specs/features via@link(as:).Note that if you were declaring
@links for thehttps://specs.apollo.dev/tagorhttps://specs.apollo.dev/inaccessiblespecs in your subgraph schema, you will need to instead import@tagand@inaccessiblefrom thehttps://specs.apollo.dev/federationspec. This previous pattern only succeeded due to a now-fixed bug and is fragile/may lead to undesirable behavior.
Patch Changes
- Fixed print logic when calculating the max number of elements to include in the message. Previously we were not passing (#3424) the current calculated length correctly leading to inclusion of additional elements in the error/hints message.
Fetched April 30, 2026
