Skip to content

feat(orphan-hoist-config): adds config for hoisting orphaned errors#8998

Merged
aaronArinder merged 1 commit intodevfrom
aaron/orphan-errs-hoisting
Mar 10, 2026
Merged

feat(orphan-hoist-config): adds config for hoisting orphaned errors#8998
aaronArinder merged 1 commit intodevfrom
aaron/orphan-errs-hoisting

Conversation

@aaronArinder
Copy link
Copy Markdown
Contributor

@aaronArinder aaronArinder commented Mar 10, 2026


Checklist

Complete the checklist (and note appropriate exceptions) before the PR is marked ready-for-review.

  • PR description explains the motivation for the change and relevant context for reviewing
  • PR description links appropriate GitHub/Jira tickets (creating when necessary)
  • Changeset is included for user-facing changes
  • Changes are compatible1
  • Documentation2 completed
  • Performance impact assessed and acceptable
  • Metrics and logs are added3 and documented
  • Tests added and passing4
    • Unit tests
    • Integration tests
    • Manual tests, as necessary

Exceptions

Note any exceptions here

Notes

Footnotes

  1. It may be appropriate to bring upcoming changes to the attention of other (impacted) groups. Please endeavour to do this before seeking PR approval. The mechanism for doing this will vary considerably, so use your judgement as to how and when to do this.

  2. Configuration is an important part of many changes. Where applicable please try to document configuration examples.

  3. A lot of (if not most) features benefit from built-in observability and debug-level logs. Please read this guidance on metrics best-practices.

  4. Tick whichever testing boxes are applicable. If you are adding Manual Tests, please document the manual testing (extensively) in the Exceptions.

@aaronArinder aaronArinder requested a review from a team as a code owner March 10, 2026 16:17
@apollo-librarian
Copy link
Copy Markdown
Contributor

apollo-librarian bot commented Mar 10, 2026

✅ Docs preview ready

The preview is ready to be viewed. View the preview

File Changes

0 new, 2 changed, 0 removed
* graphos/routing/(latest)/observability/router-telemetry-otel/enabling-telemetry/selectors.mdx
* graphos/routing/(latest)/observability/router-telemetry-otel/enabling-telemetry/spans.mdx

Build ID: fbab985d98c32848dea8cd04
Build Logs: View logs

URL: https://www.apollographql.com/docs/deploy-preview/fbab985d98c32848dea8cd04


⚠️ AI Style Review — 236 Issues Found

Summary

The documentation has been updated to align with current style guide standards. Key changes include reframing content to be more reader-centric by using "your" for ownership and adoption-focused language like "move" or "adopt" instead of "migrate." Product and feature naming was standardized, primarily by removing unnecessary articles before standalone names like "Apollo Router," "Rover CLI," and "GraphOS." Voice and tone were shifted from passive or neutral descriptions to an authoritative, prescriptive "happy path" that guides users toward recommended configurations. Technical formatting was improved by ensuring environment variables, CLI commands, and symbols use code font, while version numbers were standardized to plain text with a "v" prefix. Word usage was refined to eliminate discouraged terms such as "allow," "utilize," and "leverage" in favor of simpler alternatives like "enable" and "use," while also ensuring the use of the Oxford comma and dictionary-valid contractions.

Duration: 8177ms
Review Log: View detailed log

This review is AI-generated. Please use common sense when accepting these suggestions, as they may not always be accurate or appropriate for your specific context.

@github-actions

This comment has been minimized.

@@ -0,0 +1,23 @@
### Add `experimental_hoist_orphan_errors` configuration for controlling orphan error path assignment
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should phrase this changeset in a way where users are discouraged to try this out by themselves, instead it should only be enabled based on our advice (since there are spec-compliance concerns).

Copy link
Copy Markdown
Member

@abernix abernix Mar 10, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The prefix for this file is also currently invalid as hoist_. I think the prefix for this changeset should be the exp_ one to match the option.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed

/// every element in an array.
#[derive(Debug, Clone, Default, Deserialize, Serialize, JsonSchema)]
#[serde(deny_unknown_fields)]
pub(crate) struct HoistOrphanErrors {
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we use SubgraphConfiguration<bool> here? Notably it lets you use all + subgraphs (overriding the all configuration).

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh, yeah, this should be how it's done!

Copy link
Copy Markdown
Member

@goto-bus-stop goto-bus-stop left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM pending snapshot updates and using SubgraphConfiguration<bool>; probably someone else should do the actual approval after my working hours but the strategy looks good to me

@aaronArinder aaronArinder force-pushed the aaron/orphan-errs-hoisting branch from f31c5ad to 63057cf Compare March 10, 2026 17:28
all: true
```

These two configurations (per-subgraph and `all`) are mutually exclusive.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think this is no longer true, now that you're using the SubgraphConfiguration wrapper?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah, dang it, updating

@aaronArinder aaronArinder force-pushed the aaron/orphan-errs-hoisting branch 2 times, most recently from ffdbf89 to 9445118 Compare March 10, 2026 18:01
@smyrick
Copy link
Copy Markdown
Member

smyrick commented Mar 10, 2026

FYI Andy helped with a docs PR if we want to take those changes here or separately: #8999

@aaronArinder aaronArinder force-pushed the aaron/orphan-errs-hoisting branch from 9445118 to 852f129 Compare March 10, 2026 18:19
Copy link
Copy Markdown
Contributor

@carodewig carodewig left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@aaronArinder aaronArinder changed the base branch from dev to dev-v2.10.x March 10, 2026 19:10
@aaronArinder aaronArinder requested a review from a team as a code owner March 10, 2026 19:10
@aaronArinder aaronArinder changed the base branch from dev-v2.10.x to dev March 10, 2026 19:11
@aaronArinder aaronArinder changed the base branch from dev to dev-v2.10.x March 10, 2026 19:13
@aaronArinder aaronArinder force-pushed the aaron/orphan-errs-hoisting branch from 4e2173d to 852f129 Compare March 10, 2026 19:18
@aaronArinder aaronArinder changed the base branch from dev-v2.10.x to dev March 10, 2026 19:18
@aaronArinder aaronArinder merged commit 810241e into dev Mar 10, 2026
15 checks passed
@aaronArinder aaronArinder deleted the aaron/orphan-errs-hoisting branch March 10, 2026 19:41
@aaronArinder
Copy link
Copy Markdown
Contributor Author

@mergify backport dev-v2.10.x

@mergify
Copy link
Copy Markdown
Contributor

mergify bot commented Mar 10, 2026

backport dev-v2.10.x

✅ Backports have been created

Details

Cherry-pick of 810241e has failed:

On branch mergify/bp/dev-v2.10.x/pr-8998
Your branch is up to date with 'origin/dev-v2.10.x'.

You are currently cherry-picking commit 810241ea.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Changes to be committed:
	new file:   .changesets/exp_hoist_orphan_errors.md
	modified:   apollo-router/src/configuration/mod.rs
	modified:   apollo-router/src/configuration/snapshots/apollo_router__configuration__tests__schema_generation.snap
	modified:   apollo-router/src/configuration/tests.rs
	modified:   apollo-router/src/query_planner/fetch.rs
	modified:   apollo-router/src/query_planner/tests.rs
	modified:   apollo-router/src/services/fetch_service.rs
	modified:   apollo-router/src/services/supergraph/service.rs
	modified:   apollo-router/src/services/supergraph/snapshots/apollo_router__services__supergraph__tests__deferred_fragment_bounds_nullability-2.snap
	modified:   apollo-router/tests/integration/query_planner/snapshots/integration_tests__integration__query_planner__error_paths__multi_level_response_failure.snap
	modified:   apollo-router/tests/integration/query_planner/snapshots/integration_tests__integration__query_planner__error_paths__nested_response_failure_404.snap
	modified:   apollo-router/tests/integration/query_planner/snapshots/integration_tests__integration__query_planner__error_paths__nested_response_failure_malformed.snap
	modified:   apollo-router/tests/integration/query_planner/snapshots/integration_tests__integration__query_planner__error_paths__second_level_response_failure_empty_path.snap
	modified:   apollo-router/tests/integration/query_planner/snapshots/integration_tests__integration__query_planner__error_paths__second_level_response_failure_malformed.snap
	modified:   apollo-router/tests/integration/snapshots/integration_tests__integration__coprocessor__on_graphql_error_selector__nested_response_failure.snap
	modified:   apollo-router/tests/integration/snapshots/integration_tests__integration__demand_control__requests_exceeding_one_subgraph_cost_are_accepted@federated_ships_required.snap

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   apollo-router/src/executable.rs

To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants