releases.shpreview
Apollo GraphQL/Apollo Federation/@apollo/federation-internals@2.14.0

@apollo/federation-internals@2.14.0

$npx @buildinternet/releases get rel_Zg9-P43ahxbhSkv7DLZWx

Minor Changes

  • Relax @interfaceObject validation for Fed 1 subgraphs. (#3392)

    Previously, any use of @interfaceObject in a Fed 2 subgraph caused an INTERFACE_OBJECT_USAGE_ERROR if 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 @interfaceObject on type T and a Fed 1 subgraph has @key on an interface also named T. @key on an interface in a Fed 1 subgraph does not mean it can fulfill the __typename-resolution requirement that @interfaceObject depends on — but they are otherwise compatible with @interfaceObject usage on unrelated types.

  • Add validations for @link usages 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 the https://specs.apollo.dev/tag or https://specs.apollo.dev/inaccessible specs in your subgraph schema, you will need to instead import @tag and @inaccessible from the https://specs.apollo.dev/federation spec. 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