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)

Đang mở
#20,220 7 bình luận 1 reaction 1 người được giao Được @JPeer264 nhận Xem trên GitHub
Bug Next.js State: Blocked Waiting for: Community
Ngôn ngữ chính
TypeScript
Star
8.7k
Fork
1.8k
Merge trung bình
1 ngày 17 giờ
Pull request đã merge (30 ngày)
515

Mô tả

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

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.