Skip to content

Cloudflare Workers: no server segment span for a request interrupted by a streaming RSC error under span streaming #23932

Description

@chargome

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.

Activity

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

Metadata

Metadata

Assignees

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions