Summary
The E2E Tests Core (proxy) shard is failing deterministically on every open PR, including PRs that don't touch proxy/transport code at all:
Failing spec: TimeStreamableHttpMcpServer > when starting the time server with streamable-http proxy > should respond to a single get_current_time request and a batch request (test/e2e/stdio_proxy_over_streamable_http_mcp_server_test.go:42)
Assertion: the batch request part now returns HTTP 400 where 200 is expected.
Likely cause
This looks like fallout from the recent stateless-proxy work on main (e.g. #5884, "Serve MCP 2026-07-28 stateless requests through the transparent proxy") — the MCP 2026-07-28 revision removed JSON-RPC batching, so the proxy rejecting a batch with 400 may be intentional spec-conformant behavior with a test that wasn't updated, or an unintended regression for older-protocol clients.
Either way the spec and the proxy currently disagree, and every PR's required check is red because of it.
Impact
All open PRs show mergeState=UNSTABLE on this shard regardless of their content. Example failing job: https://github.com/stacklok/toolhive/actions/runs/29992236950/job/89174538909
Summary
The
E2E Tests Core (proxy)shard is failing deterministically on every open PR, including PRs that don't touch proxy/transport code at all:Failing spec:
TimeStreamableHttpMcpServer > when starting the time server with streamable-http proxy > should respond to a single get_current_time request and a batch request(test/e2e/stdio_proxy_over_streamable_http_mcp_server_test.go:42)Assertion: the batch request part now returns HTTP 400 where 200 is expected.
Likely cause
This looks like fallout from the recent stateless-proxy work on
main(e.g. #5884, "Serve MCP 2026-07-28 stateless requests through the transparent proxy") — the MCP 2026-07-28 revision removed JSON-RPC batching, so the proxy rejecting a batch with 400 may be intentional spec-conformant behavior with a test that wasn't updated, or an unintended regression for older-protocol clients.Either way the spec and the proxy currently disagree, and every PR's required check is red because of it.
Impact
All open PRs show
mergeState=UNSTABLEon this shard regardless of their content. Example failing job: https://github.com/stacklok/toolhive/actions/runs/29992236950/job/89174538909