Skip to content

Fix #6752 preserve shared entity on subgraph transport failure#9258

Open
michaelstaib wants to merge 1 commit intomainfrom
mst/issue-6752
Open

Fix #6752 preserve shared entity on subgraph transport failure#9258
michaelstaib wants to merge 1 commit intomainfrom
mst/issue-6752

Conversation

@michaelstaib
Copy link
Member

Overview

Fixes #6752

This change addresses shared top-level entity lookups when one subgraph fails with a transport error.

What changed

  • Added a regression test (Issue6752Tests) that reproduces a shared productById query where one subgraph is offline and verifies:
    • data.productById stays an object
    • fields from the failing subgraph are null
    • fields from the healthy subgraph are still returned
  • Updated Fusion planner lookup argument handling for shared root lookups:
    • Reuses root field arguments directly from the original operation when available.
    • Avoids creating unnecessary lookup requirements/dependencies for that case.
    • Normalizes source extraction to root for this no-requirements lookup path.
  • Updated value completion for object fields to rehydrate null targets when later shared-source object data arrives.

Test commands

  • dotnet test src/HotChocolate/Fusion-vnext/test/Fusion.AspNetCore.Tests/HotChocolate.Fusion.AspNetCore.Tests.csproj --filter "FullyQualifiedName~Issue6752Tests"

    • Passed on net8.0, net9.0, net10.0.
  • dotnet test src/HotChocolate/Fusion-vnext/test/Fusion.AspNetCore.Tests/HotChocolate.Fusion.AspNetCore.Tests.csproj --filter "FullyQualifiedName~Issue6752Tests|FullyQualifiedName~SourceSchema_Request_Fails_For_Lookup"

    • Passed on net8.0, net9.0, net10.0.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 27, 2026

Fusion Gateway Performance Results

Simple Composite Query

Req/s Err%
Constant 2 (50 VUs) 3330.56 0.00%
Ramping 2 (0-500-0 VUs) 3831.39 0.00%
Response Times
Min Med Avg P90 P95 Max
Constant 2 1.06ms 12.12ms 14.74ms 23.73ms 33.15ms 263.84ms
Ramping 2 1.13ms 52.42ms 57.25ms 100.28ms 142.73ms 287.36ms

Deep Recursion Query

Req/s Err%
Constant 2 (50 VUs) 791.10 0.00%
Ramping 2 (0-500-0 VUs) 939.19 0.00%
Response Times
Min Med Avg P90 P95 Max
Constant 2 10.64ms 55.06ms 61.01ms 78.20ms 95.15ms 647.32ms
Ramping 2 3.10ms 202.97ms 219.67ms 449.92ms 501.75ms 835.96ms

Variable Batching Throughput

Req/s Err%
Constant 2 (50 VUs) 5696.17 0.00%
Ramping 2 (0-500-0 VUs) 5235.88 0.00%
Response Times
Min Med Avg P90 P95 Max
Constant 2 0.17ms 8.20ms 8.67ms 14.52ms 17.51ms 104.38ms
Ramping 2 0.18ms 39.18ms 43.86ms 81.52ms 107.85ms 225.02ms

Runner 2 = benchmarking-2

Run 22495058103 • Commit 4b661fb • Fri, 27 Feb 2026 16:50:49 GMT

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Subgraph transport exception for fields below an entity cause entire entity to be nulled

1 participant