Patch Changes
-
Handle defaulted variables correctly during post-processing. (
98844fd5
)Users who tried to use built-in conditional directives (skip/include) with defaulted variables and no variable provided would encounter an error thrown by operation post-processing saying that the variables weren't provided. The defaulted values went unaccounted for, so the operation would validate but then fail an assertion while resolving the conditional.
With this change, defaulted variable values are now collected and provided to post-processing (with defaults being overwritten by variables that are actually provided).
-
Fix issues (incorrectly rejected composition and/or subgraph errors) with
@interfaceObject
. Those issues may occur (11f2d7c0
)
either due to some use of@requires
in an@interfaceObject
type, or when some subgraphS
defines a type that is an
implementation of an interfaceI
in the supergraph, and there is an@interfaceObject
forI
in another subgraph,
butS
does not itself definesI
. -
Fix potential bug when an
@interfaceObject
type has a@requires
. When an@interfaceObject
type has a field with a (2894a1ea
)
@requires
and the query requests that field only for some specific implementations of the corresponding interface,
then the generated query plan was sometimes invalid and could result in an invalid query to a subgraph (against a
subgraph that rely on@apollo/subgraph
, this lead the subgraph to produce an error message looking like"The _entities resolver tried to load an entity for type X, but no object or interface type of that name was found in the schema"
).