What
On Cloudflare Workers with span streaming enabled, a request whose response is interrupted by a crashing streaming RSC promise emits no http.server segment span for the route. Under traceLifecycle: 'static' the equivalent transaction is sent.
The same scenario on Node (nextjs-16) does emit the server segment span, so this appears specific to the Workers runtime.
Evidence
Observed in the nextjs-16-cf-workers E2E app while porting it to span streaming in #23926. The streamed event dump for a run of streaming-rsc-error.test.ts contains, all on trace 7e8fee9d:
resolve page server component "/streaming-rsc-error/[param]" is_segment=false
http://localhost:3030/streaming-rsc-error/123 is_segment=false (x7)
/streaming-rsc-error/:param is_segment=true <- client pageload
The error (I am a data streaming error) is captured on that same trace. Server-side children are present, so the work is traced - but there is no GET /streaming-rsc-error/[param] segment span. Other routes in the same app do emit their server segments (GET /parameterized/[one]/beep/[two], GET /isr-test/[product], etc.), so it is not a blanket absence.
nextjs-16-cf-workers passes on develop today with the transaction-based version of this spec, which is not skipped there.
Impact
A request aborted by a streaming RSC error is not represented by a segment span on Workers under streaming, so it would not appear as a transaction in the product. Its children and its error are still sent, and are orphaned onto the client pageload's trace.
Status
The affected E2E test is skipped in #23926 with a pointer to this issue, rather than having its expectations relaxed. This app already carries several test.skips with TODOs for Cloudflare Workers SDK work; this is another.
What
On Cloudflare Workers with span streaming enabled, a request whose response is interrupted by a crashing streaming RSC promise emits no
http.serversegment span for the route. UndertraceLifecycle: 'static'the equivalent transaction is sent.The same scenario on Node (
nextjs-16) does emit the server segment span, so this appears specific to the Workers runtime.Evidence
Observed in the
nextjs-16-cf-workersE2E app while porting it to span streaming in #23926. The streamed event dump for a run ofstreaming-rsc-error.test.tscontains, all on trace7e8fee9d:The error (
I am a data streaming error) is captured on that same trace. Server-side children are present, so the work is traced - but there is noGET /streaming-rsc-error/[param]segment span. Other routes in the same app do emit their server segments (GET /parameterized/[one]/beep/[two],GET /isr-test/[product], etc.), so it is not a blanket absence.nextjs-16-cf-workerspasses ondeveloptoday with the transaction-based version of this spec, which is not skipped there.Impact
A request aborted by a streaming RSC error is not represented by a segment span on Workers under streaming, so it would not appear as a transaction in the product. Its children and its error are still sent, and are orphaned onto the client pageload's trace.
Status
The affected E2E test is skipped in #23926 with a pointer to this issue, rather than having its expectations relaxed. This app already carries several
test.skips with TODOs for Cloudflare Workers SDK work; this is another.