getsentry / getsentry/sentry-javascript

Reconnect pageload and serving request under `cacheComponents`

Open
#24,298 1 comment 0 reactions 0 assignees View on GitHub
javascript
Dominant language
TypeScript
Stars
8.7k
Forks
1.8k
Avg merge
1d 17h
Merged PRs (30d)
523

Description

*Example:* any `cacheComponents` page. The browser records pageload trace X, the server records request trace Y, and they never meet. The SDK currently disables the `sentry-trace` meta tags. because the shell HTML is cached and baked-in context would replay one stale trace to every visitor. Result: two orphan traces per visit. A slow pageload cannot be followed into its server work.

*Solves:* the incomplete-traces complaint. This is the gap users notice first.

*Fix idea:* carry trace context only in the part of the response that is never cached. For example, a small component rendered inside a dynamic hole streams the meta tag or script with trace Y's context, and the browser SDK picks it up. The prerendered shell stays context-free. This sketch has no prototype behind it yet - research this first.

Contributor guide

Open the contributing guide

Research direction

No files or tests are named. Start by locating the cacheComponents handling and the browser/server trace-context entry points, then inspect how cached shell HTML and dynamic holes are rendered. Done means pageload trace X and server trace Y reconnect without replaying stale context from the cached shell, with coverage for a cacheComponents page.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
observability, web-dev
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.