getsentry / getsentry/sentry-javascript

TypeError: Cannot set property logger of #<Y> which has only a getter — OTel instrumentation crash on cold start (@opentelemetry/instrumentation v0.214.0)

Offen
#20,220 7 Kommentare 1 Reaktion 1 zugewiesene Person Beansprucht von @JPeer264 Auf GitHub ansehen
Bug Next.js State: Blocked Waiting for: Community
Vorherrschende Sprache
TypeScript
Sterne
8.7k
Forks
1.8k
Ø Merge
1 T. 17 Std.
Gemergte PRs (30 T.)
515

Beschreibung

### Is there an existing issue for this?

- [x] I have checked for existing issues https://github.com/getsentry/sentry-javascript/issues
- [x] I have reviewed the documentation https://docs.sentry.io/
- [x] I am using the latest SDK release https://github.com/getsentry/sentry-javascript/releases

### How do you use Sentry?

Sentry Saas (sentry.io)

### Which SDK are you using?

@sentry/nextjs

### SDK Version

10.48.0

### Framework Version

16.1.4

### Link to Sentry event

https://gympilot-0k.sentry.io/issues/111299682/events/a59aaf966d2347ce86f0dc0c41f5c6c1/

### Reproduction Example/SDK Setup

```js
// sentry.server.config.ts
import * as Sentry from "@sentry/nextjs";

Sentry.init({
dsn: "YOUR_DSN",
tracesSampleRate: 0.1,
});
```

### Steps to Reproduce

1. Install @sentry/nextjs@10.48.0 in a Next.js 15+ project
2. Create sentry.server.config.ts with a basic Sentry.init() call
3. Deploy to any Node.js environment (Vercel, etc.)
4. Observe server logs on cold start

### Expected Result

Sentry initializes cleanly with no errors in server logs.

### Actual Result

```
TypeError: Cannot set property logger of # which has only a getter
at Object.assign ()
at setupOnce (node_modules/@opentelemetry/instrumentation/build/src/instrumentation.js)
```

Root cause: @opentelemetry/instrumentation v0.214.0 changed the `logger`
property on InstrumentationAbstract from a writable property to a
getter-only (no setter). Sentry's OTel setup calls Object.assign() on
the instrumentation object with a `logger` key, which throws a TypeError
because there is no setter.

Workaround: skipOpenTelemetrySetup: true in Sentry.init() stops the crash
but disables all OTel-based performance tracing.

Package versions:
- @sentry/nextjs: 10.48.0
- @opentelemetry/instrumentation: 0.214.0 (pulled in transitively)

### Additional Context

_No response_

### Priority

React with 👍 to help prioritize this issue. Please use comments to provide useful context, avoiding `+1` or `me too`, to help us triage it.

Beitragsleitfaden

Beitragsleitfaden öffnen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.