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)

未关闭
#20,220 7 条评论 1 个 reaction 已指派 1 人 已被 @JPeer264 认领 在 GitHub 查看
Bug Next.js State: Blocked Waiting for: Community
主要语言
TypeScript
星标
8.7k
派生
1.8k
平均合并
1 天 17 小时
30 天内合并 PR
515

描述

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

贡献指南

打开贡献指南

评估

这个 Issue 还没有评估数据。

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。