Skip to content

Merging to release-5.8.15: [TT-17578] Bump graphql-go-tools to fix Federation subscription-then-query null regression (#8345)#8358

Merged
mativm02 merged 3 commits into
release-5.8.15from
merge/release-5.8.15/63316b393a9849620dece3e7b6447f2fe066dbe2/TT-17578
Jun 24, 2026
Merged

Merging to release-5.8.15: [TT-17578] Bump graphql-go-tools to fix Federation subscription-then-query null regression (#8345)#8358
mativm02 merged 3 commits into
release-5.8.15from
merge/release-5.8.15/63316b393a9849620dece3e7b6447f2fe066dbe2/TT-17578

Conversation

@probelabs

@probelabs probelabs Bot commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Cherry-pick of 63316b393a9849620dece3e7b6447f2fe066dbe2 from master to release-5.8.15 requires manual resolution.

Conflicts detected: 3

  • go.sum

Tips:

  • Check out this branch locally and run: git cherry-pick -x 63316b393a9849620dece3e7b6447f2fe066dbe2
  • Resolve conflicts (including submodules if any), then push back to this branch.

Original commit: 63316b3

    Cherry-pick failed with conflicts and requires manual resolution.
    This empty commit exists to allow opening a draft PR.
…query null regression (#8345)

Bumps `github.com/TykTechnologies/graphql-go-tools` to pick up
**TykTechnologies/graphql-go-tools#447**.

On a GraphQL Federation supergraph API, running a subscription
(websocket) first and then a query over the same connection makes the
query return `null` instead of data. Gateway logs show `websocket
upgrade for GraphQL engine failed: 'upgrade' token not found in
'Connection' header` against the subgraphs. Regression introduced in
5.8.15 / 5.13.1 / 5.14.0 (clean on 5.8.14 and 5.13.0).

The gateway tags an inbound websocket subscription request with a
context value `GraphQLIsWebSocketUpgrade=true`. The library change in
`mergedContext` that resolved values from that original request context,
so the flag leaked into every subgraph fetch. The subgraphs then tried
to perform a websocket handshake on plain HTTP fetches, which failed →
`null`.

The executor now builds its execution context without inheriting the
original request's context values, while still forwarding the
per-request header modifier — preserving TT-17442's per-user
connection/credential isolation. See #447 for details and tests.

- Bumps the **v1** module only (`v1.6.2-0.20260610093432-c7048b604e16` →
`v1.6.2-0.20260623130956-98d2c88fce43`).
- The gateway's `graphql-go-tools/v2` pin predates TT-17442, so the
v3/v2 engine path is **not** affected and is intentionally left
unchanged.

- `go mod verify` passes; `internal/graphengine` and
`apidef/adapter/...` build against the new pin.

> Draft — depends on graphql-go-tools#447, which is not merged yet. The
version pin points at the #447 branch commit and must be re-pinned to
the squash-merge commit once #447 lands.

[TT-17442]:
https://tyktech.atlassian.net/browse/TT-17442?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ

(cherry picked from commit 63316b3)
@mativm02
mativm02 marked this pull request as ready for review June 24, 2026 18:25
@mativm02 mativm02 removed the needs-manual-cherry-pick Cherry-pick has conflicts label Jun 24, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Failed to generate code suggestions for PR

@mativm02 mativm02 added the deps-reviewed Dependency changes reviewed and approved for CI execution label Jun 24, 2026
@sentinelone-cnapp-eu1

Copy link
Copy Markdown

SentinelOne CNS Hardcoded Secret Detector
✅ Congratulations, your code is safe

SentinelOne CNS is a cloud-agnostic, agentless CSPM & CWPP solution that continuously detects and prevents vulnerabilities that have the highest probability of being exploited in Azure, AWS, Google Cloud, and Kubernetes.

@github-actions

Copy link
Copy Markdown
Contributor

🚨 Jira Linter Failed

Commit: 96517ad
Failed at: 2026-06-24 18:42:32 UTC

The Jira linter failed to validate your PR. Please check the error details below:

🔍 Click to view error details
failed to get Jira issue: failed to fetch Jira issue TT-17578: Issue does not exist or you do not have permission to see it.: request failed. Please analyze the request body for more details. Status code: 404

Next Steps

  • Ensure your branch name contains a valid Jira ticket ID (e.g., ABC-123)
  • Verify your PR title matches the branch's Jira ticket ID
  • Check that the Jira ticket exists and is accessible

This comment will be automatically deleted once the linter passes.

@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
1 Security Hotspot
78.2% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube Cloud

@mativm02
mativm02 enabled auto-merge (squash) June 24, 2026 19:57
@mativm02
mativm02 merged commit 0cf1eab into release-5.8.15 Jun 24, 2026
109 of 116 checks passed
@mativm02
mativm02 deleted the merge/release-5.8.15/63316b393a9849620dece3e7b6447f2fe066dbe2/TT-17578 branch June 24, 2026 22:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

deps-reviewed Dependency changes reviewed and approved for CI execution

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant