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)

Ouverte
#20,220 7 commentaires 1 réaction 1 personne assignée Réclamée par @JPeer264 Voir sur GitHub
Bug Next.js State: Blocked Waiting for: Community
Langage dominant
TypeScript
Étoiles
8.7k
Forks
1.8k
Merge moyen
1 j 17 h
PR mergées (30 j)
515

Description

### 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.

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.