diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b11a9bd3277..2ae39263a3c6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,16 @@ - "You miss 100 percent of the chances you don't take. — Wayne Gretzky" — Michael Scott +### Important Changes + +- **fix(v10/deps): Limit `@opentelemetry/api` to `<1.10.0` and the OpenTelemetry SDK to `<3.0.0` ([#25650](https://github.com/getsentry/sentry-javascript/pull/25650))** + + `@opentelemetry/api` 1.10.0 only works with OpenTelemetry SDK v3 (`@opentelemetry/core` 3.x, `@opentelemetry/instrumentation` 0.300.x). The SDK v2 packages that v10 uses only support `@opentelemetry/api` below 1.10.0, and SDK v3 needs Node.js 22.15.0 or newer, while v10 supports Node.js 18 and newer. For this reason, v10 now limits `@opentelemetry/api` to `<1.10.0`, and the `@opentelemetry/instrumentation` and `@opentelemetry/exporter-trace-otlp-http` peer dependencies of `@sentry/node-core` to `<0.300.0`. + + If your app depends on `@opentelemetry/api` directly, use a version below 1.10.0 (for example `~1.9.1`). With 1.10.0, your app and the Sentry SDK use different copies of the API, and the OpenTelemetry calls of your app do not see the tracer provider of the Sentry SDK. + + To use `@opentelemetry/api` 1.10.0 and OpenTelemetry SDK v3, upgrade to v11 of the Sentry SDK. For the upgrade steps, see the [migration guide](https://docs.sentry.io/platforms/javascript/migration/v10-to-v11/). + ## 10.77.0 ### Important Changes diff --git a/dev-packages/e2e-tests/test-applications/deno-streamed/package.json b/dev-packages/e2e-tests/test-applications/deno-streamed/package.json index acc417cd3cd0..96b7e3995eeb 100644 --- a/dev-packages/e2e-tests/test-applications/deno-streamed/package.json +++ b/dev-packages/e2e-tests/test-applications/deno-streamed/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@sentry/deno": "file:../../packed/sentry-deno-packed.tgz", - "@opentelemetry/api": "^1.9.0", + "@opentelemetry/api": ">=1.9.0 <1.10.0", "ai": "^3.0.0", "zod": "^3.22.4" }, diff --git a/dev-packages/e2e-tests/test-applications/deno/package.json b/dev-packages/e2e-tests/test-applications/deno/package.json index d408ed2816db..d39db55e71b2 100644 --- a/dev-packages/e2e-tests/test-applications/deno/package.json +++ b/dev-packages/e2e-tests/test-applications/deno/package.json @@ -11,7 +11,7 @@ }, "dependencies": { "@sentry/deno": "file:../../packed/sentry-deno-packed.tgz", - "@opentelemetry/api": "^1.9.0", + "@opentelemetry/api": ">=1.9.0 <1.10.0", "ai": "^3.0.0", "zod": "^3.22.4" }, diff --git a/dev-packages/e2e-tests/test-applications/nextjs-custom-otel/package.json b/dev-packages/e2e-tests/test-applications/nextjs-custom-otel/package.json index e443661221e2..58680875e6ea 100644 --- a/dev-packages/e2e-tests/test-applications/nextjs-custom-otel/package.json +++ b/dev-packages/e2e-tests/test-applications/nextjs-custom-otel/package.json @@ -19,7 +19,7 @@ "test:assert-webpack": "pnpm test:prod && pnpm test:dev-webpack" }, "dependencies": { - "@opentelemetry/api": "^1.9.1", + "@opentelemetry/api": ">=1.9.1 <1.10.0", "@opentelemetry/exporter-metrics-otlp-http": "^0.220.0", "@opentelemetry/exporter-trace-otlp-http": "^0.220.0", "@opentelemetry/resources": "^2.9.0", diff --git a/dev-packages/e2e-tests/test-applications/node-core-express-otel-v1-custom-sampler/package.json b/dev-packages/e2e-tests/test-applications/node-core-express-otel-v1-custom-sampler/package.json index 160edce67c56..04a2b886b46c 100644 --- a/dev-packages/e2e-tests/test-applications/node-core-express-otel-v1-custom-sampler/package.json +++ b/dev-packages/e2e-tests/test-applications/node-core-express-otel-v1-custom-sampler/package.json @@ -11,7 +11,7 @@ "test:assert": "pnpm test" }, "dependencies": { - "@opentelemetry/api": "^1.9.0", + "@opentelemetry/api": ">=1.9.0 <1.10.0", "@opentelemetry/core": "^1.30.1", "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/instrumentation-http": "^0.57.1", diff --git a/dev-packages/e2e-tests/test-applications/node-core-express-otel-v1-sdk-node/package.json b/dev-packages/e2e-tests/test-applications/node-core-express-otel-v1-sdk-node/package.json index 0ac871787ede..8b131070acb9 100644 --- a/dev-packages/e2e-tests/test-applications/node-core-express-otel-v1-sdk-node/package.json +++ b/dev-packages/e2e-tests/test-applications/node-core-express-otel-v1-sdk-node/package.json @@ -11,7 +11,7 @@ "test:assert": "pnpm test" }, "dependencies": { - "@opentelemetry/api": "^1.9.0", + "@opentelemetry/api": ">=1.9.0 <1.10.0", "@opentelemetry/core": "^1.30.1", "@opentelemetry/instrumentation": "^0.57.2", "@opentelemetry/instrumentation-http": "^0.57.2", diff --git a/dev-packages/e2e-tests/test-applications/node-core-express-otel-v1/package.json b/dev-packages/e2e-tests/test-applications/node-core-express-otel-v1/package.json index 7cfea6cc7052..8238bbe9e461 100644 --- a/dev-packages/e2e-tests/test-applications/node-core-express-otel-v1/package.json +++ b/dev-packages/e2e-tests/test-applications/node-core-express-otel-v1/package.json @@ -13,7 +13,7 @@ "dependencies": { "@sentry/node-core": "file:../../packed/sentry-node-core-packed.tgz", "@sentry/opentelemetry": "file:../../packed/sentry-opentelemetry-packed.tgz", - "@opentelemetry/api": "^1.9.0", + "@opentelemetry/api": ">=1.9.0 <1.10.0", "@opentelemetry/core": "^1.30.1", "@opentelemetry/instrumentation": "^0.57.1", "@opentelemetry/instrumentation-http": "^0.57.1", diff --git a/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2-custom-sampler/package.json b/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2-custom-sampler/package.json index b44b3a62911e..2a7574bdfa04 100644 --- a/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2-custom-sampler/package.json +++ b/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2-custom-sampler/package.json @@ -11,7 +11,7 @@ "test:assert": "pnpm test" }, "dependencies": { - "@opentelemetry/api": "^1.9.0", + "@opentelemetry/api": ">=1.9.0 <1.10.0", "@opentelemetry/core": "^2.6.0", "@opentelemetry/instrumentation": "^0.214.0", "@opentelemetry/instrumentation-http": "^0.214.0", diff --git a/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2-sdk-node/package.json b/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2-sdk-node/package.json index 8552a7990a2d..c556dfb3a425 100644 --- a/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2-sdk-node/package.json +++ b/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2-sdk-node/package.json @@ -11,7 +11,7 @@ "test:assert": "pnpm test" }, "dependencies": { - "@opentelemetry/api": "^1.9.0", + "@opentelemetry/api": ">=1.9.0 <1.10.0", "@opentelemetry/core": "^2.6.0", "@opentelemetry/instrumentation": "^0.214.0", "@opentelemetry/instrumentation-http": "^0.214.0", diff --git a/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2/package.json b/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2/package.json index dc57fb2568f8..dd09582bf1c5 100644 --- a/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2/package.json +++ b/dev-packages/e2e-tests/test-applications/node-core-express-otel-v2/package.json @@ -13,7 +13,7 @@ "dependencies": { "@sentry/node-core": "file:../../packed/sentry-node-core-packed.tgz", "@sentry/opentelemetry": "file:../../packed/sentry-opentelemetry-packed.tgz", - "@opentelemetry/api": "^1.9.0", + "@opentelemetry/api": ">=1.9.0 <1.10.0", "@opentelemetry/core": "^2.6.0", "@opentelemetry/instrumentation": "^0.214.0", "@opentelemetry/instrumentation-http": "^0.214.0", diff --git a/dev-packages/e2e-tests/test-applications/node-core-light-otlp/package.json b/dev-packages/e2e-tests/test-applications/node-core-light-otlp/package.json index ac56781130c2..9ce646280df6 100644 --- a/dev-packages/e2e-tests/test-applications/node-core-light-otlp/package.json +++ b/dev-packages/e2e-tests/test-applications/node-core-light-otlp/package.json @@ -12,7 +12,7 @@ "test:assert": "pnpm test" }, "dependencies": { - "@opentelemetry/api": "^1.9.0", + "@opentelemetry/api": ">=1.9.0 <1.10.0", "@opentelemetry/exporter-trace-otlp-http": "^0.211.0", "@opentelemetry/sdk-trace-base": "^2.5.1", "@opentelemetry/sdk-trace-node": "^2.5.1", diff --git a/dev-packages/e2e-tests/test-applications/node-otel-custom-sampler/package.json b/dev-packages/e2e-tests/test-applications/node-otel-custom-sampler/package.json index b26e3981e028..5ad3480f7b73 100644 --- a/dev-packages/e2e-tests/test-applications/node-otel-custom-sampler/package.json +++ b/dev-packages/e2e-tests/test-applications/node-otel-custom-sampler/package.json @@ -11,7 +11,7 @@ "test:assert": "pnpm test" }, "dependencies": { - "@opentelemetry/api": "^1.9.0", + "@opentelemetry/api": ">=1.9.0 <1.10.0", "@opentelemetry/sdk-trace-node": "^2.6.0", "@sentry/node": "file:../../packed/sentry-node-packed.tgz", "@sentry/opentelemetry": "file:../../packed/sentry-opentelemetry-packed.tgz", diff --git a/dev-packages/node-core-integration-tests/package.json b/dev-packages/node-core-integration-tests/package.json index 6287c25e2f56..923b395821b7 100644 --- a/dev-packages/node-core-integration-tests/package.json +++ b/dev-packages/node-core-integration-tests/package.json @@ -26,7 +26,7 @@ "@nestjs/common": "^11", "@nestjs/core": "^11", "@nestjs/platform-express": "^11", - "@opentelemetry/api": "^1.9.1", + "@opentelemetry/api": ">=1.9.1 <1.10.0", "@opentelemetry/core": "^2.9.0", "@opentelemetry/instrumentation": "^0.220.0", "@opentelemetry/instrumentation-http": "0.220.0", diff --git a/packages/aws-serverless/package.json b/packages/aws-serverless/package.json index d5e1b00f1dd3..907ab182d19f 100644 --- a/packages/aws-serverless/package.json +++ b/packages/aws-serverless/package.json @@ -70,7 +70,7 @@ "tag": "v10" }, "dependencies": { - "@opentelemetry/api": "^1.9.1", + "@opentelemetry/api": ">=1.9.1 <1.10.0", "@opentelemetry/instrumentation": "^0.220.0", "@sentry/conventions": "^0.16.0", "@sentry/core": "10.76.2", diff --git a/packages/cloudflare/package.json b/packages/cloudflare/package.json index cf478b6d430d..a84af5dff415 100644 --- a/packages/cloudflare/package.json +++ b/packages/cloudflare/package.json @@ -70,7 +70,7 @@ "tag": "v10" }, "dependencies": { - "@opentelemetry/api": "^1.9.1", + "@opentelemetry/api": ">=1.9.1 <1.10.0", "@sentry/core": "10.76.2", "@sentry/server-utils": "10.76.2", "magic-string": "~0.30.21" diff --git a/packages/deno/package.json b/packages/deno/package.json index 44057e7e020c..c490e710a030 100644 --- a/packages/deno/package.json +++ b/packages/deno/package.json @@ -28,7 +28,7 @@ "/build" ], "dependencies": { - "@opentelemetry/api": "^1.9.1", + "@opentelemetry/api": ">=1.9.1 <1.10.0", "@sentry/core": "10.76.2", "@sentry/server-utils": "10.76.2" }, diff --git a/packages/hono/package.json b/packages/hono/package.json index ae10a7a5fee1..b2f8c1b3d4e7 100644 --- a/packages/hono/package.json +++ b/packages/hono/package.json @@ -92,7 +92,7 @@ "tag": "v10" }, "dependencies": { - "@opentelemetry/api": "^1.9.1", + "@opentelemetry/api": ">=1.9.1 <1.10.0", "@sentry/core": "10.76.2", "@sentry/conventions": "^0.16.0" }, diff --git a/packages/nestjs/package.json b/packages/nestjs/package.json index dd91ec5d094a..14aea3b1b5d1 100644 --- a/packages/nestjs/package.json +++ b/packages/nestjs/package.json @@ -45,7 +45,7 @@ "tag": "v10" }, "dependencies": { - "@opentelemetry/api": "^1.9.1", + "@opentelemetry/api": ">=1.9.1 <1.10.0", "@opentelemetry/instrumentation": "^0.220.0", "@sentry/conventions": "^0.16.0", "@sentry/core": "10.76.2", diff --git a/packages/nextjs/package.json b/packages/nextjs/package.json index fada41ca3ab5..76e28eabcb12 100644 --- a/packages/nextjs/package.json +++ b/packages/nextjs/package.json @@ -86,7 +86,7 @@ "tag": "v10" }, "dependencies": { - "@opentelemetry/api": "^1.9.1", + "@opentelemetry/api": ">=1.9.1 <1.10.0", "@rollup/plugin-commonjs": "28.0.1", "@sentry/browser-utils": "10.76.2", "@sentry/bundler-plugins": "10.76.2", diff --git a/packages/node-core/package.json b/packages/node-core/package.json index 0028ee930bc7..f019a8c8e9eb 100644 --- a/packages/node-core/package.json +++ b/packages/node-core/package.json @@ -78,11 +78,11 @@ "tag": "v10" }, "peerDependencies": { - "@opentelemetry/api": "^1.9.0", + "@opentelemetry/api": ">=1.9.0 <1.10.0", "@opentelemetry/core": "^1.30.1 || ^2.1.0", - "@opentelemetry/instrumentation": ">=0.57.1 <1", + "@opentelemetry/instrumentation": ">=0.57.1 <0.300.0", "@opentelemetry/sdk-trace-base": "^1.30.1 || ^2.1.0", - "@opentelemetry/exporter-trace-otlp-http": ">=0.57.0 <1" + "@opentelemetry/exporter-trace-otlp-http": ">=0.57.0 <0.300.0" }, "peerDependenciesMeta": { "@opentelemetry/api": { @@ -108,7 +108,7 @@ "import-in-the-middle": "^3.0.0" }, "devDependencies": { - "@opentelemetry/api": "^1.9.1", + "@opentelemetry/api": ">=1.9.1 <1.10.0", "@opentelemetry/core": "^2.9.0", "@opentelemetry/exporter-trace-otlp-http": "^0.220.0", "@opentelemetry/instrumentation": "^0.220.0", diff --git a/packages/node/package.json b/packages/node/package.json index 35e45952fb7f..e227dd2b0673 100644 --- a/packages/node/package.json +++ b/packages/node/package.json @@ -66,7 +66,7 @@ "tag": "v10" }, "dependencies": { - "@opentelemetry/api": "^1.9.1", + "@opentelemetry/api": ">=1.9.1 <1.10.0", "@opentelemetry/instrumentation": "^0.220.0", "@opentelemetry/sdk-trace-base": "^2.9.0", "@sentry/conventions": "^0.16.0", diff --git a/packages/opentelemetry/package.json b/packages/opentelemetry/package.json index 5bcf3d43989c..045b14625e81 100644 --- a/packages/opentelemetry/package.json +++ b/packages/opentelemetry/package.json @@ -53,12 +53,12 @@ "@sentry/core": "10.76.2" }, "peerDependencies": { - "@opentelemetry/api": "^1.9.0", + "@opentelemetry/api": ">=1.9.0 <1.10.0", "@opentelemetry/core": "^1.30.1 || ^2.1.0", "@opentelemetry/sdk-trace-base": "^1.30.1 || ^2.1.0" }, "devDependencies": { - "@opentelemetry/api": "^1.9.1", + "@opentelemetry/api": ">=1.9.1 <1.10.0", "@opentelemetry/core": "^2.9.0", "@opentelemetry/sdk-trace-base": "^2.9.0" }, diff --git a/packages/react-router/package.json b/packages/react-router/package.json index 0b2070ec7446..7b8fde4cf97d 100644 --- a/packages/react-router/package.json +++ b/packages/react-router/package.json @@ -46,7 +46,7 @@ "tag": "v10" }, "dependencies": { - "@opentelemetry/api": "^1.9.1", + "@opentelemetry/api": ">=1.9.1 <1.10.0", "@opentelemetry/instrumentation": "^0.220.0", "@sentry/browser": "10.76.2", "@sentry/cli": "^2.58.6", diff --git a/packages/remix/package.json b/packages/remix/package.json index 5a63db343900..9d14943ec359 100644 --- a/packages/remix/package.json +++ b/packages/remix/package.json @@ -65,7 +65,7 @@ "tag": "v10" }, "dependencies": { - "@opentelemetry/api": "^1.9.1", + "@opentelemetry/api": ">=1.9.1 <1.10.0", "@opentelemetry/instrumentation": "^0.220.0", "@remix-run/router": "^1.23.3", "@sentry/cli": "^2.58.6", diff --git a/packages/sveltekit/package.json b/packages/sveltekit/package.json index 3996d11b2d48..3c38fd4ed9c7 100644 --- a/packages/sveltekit/package.json +++ b/packages/sveltekit/package.json @@ -62,7 +62,7 @@ } }, "dependencies": { - "@opentelemetry/api": "^1.9.1", + "@opentelemetry/api": ">=1.9.1 <1.10.0", "@sentry/cloudflare": "10.76.2", "@sentry/core": "10.76.2", "@sentry/conventions": "^0.16.0", diff --git a/packages/tanstackstart-react/package.json b/packages/tanstackstart-react/package.json index f9dba8bd28ea..358f588eec8f 100644 --- a/packages/tanstackstart-react/package.json +++ b/packages/tanstackstart-react/package.json @@ -64,7 +64,7 @@ "tag": "v10" }, "dependencies": { - "@opentelemetry/api": "^1.9.1", + "@opentelemetry/api": ">=1.9.1 <1.10.0", "@sentry/browser-utils": "10.76.2", "@sentry/conventions": "^0.16.0", "@sentry/core": "10.76.2", diff --git a/packages/vercel-edge/package.json b/packages/vercel-edge/package.json index 447bd62458d3..7264a8a96840 100644 --- a/packages/vercel-edge/package.json +++ b/packages/vercel-edge/package.json @@ -40,7 +40,7 @@ "tag": "v10" }, "dependencies": { - "@opentelemetry/api": "^1.9.1", + "@opentelemetry/api": ">=1.9.1 <1.10.0", "@sentry/core": "10.76.2" }, "devDependencies": { diff --git a/yarn.lock b/yarn.lock index 72a243cf40cc..05db0a36ef66 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5906,7 +5906,7 @@ resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.0.tgz#d03eba68273dc0f7509e2a3d5cba21eae10379fe" integrity sha512-3giAOQvZiH5F9bMlMiv8+GSPMeqg0dbaeo58/0SlA9sxSqZhnUtxzX9/2FzyhS9sWQf5S0GJE0AKBrFqjpeYcg== -"@opentelemetry/api@^1.3.0", "@opentelemetry/api@^1.9.0", "@opentelemetry/api@^1.9.1": +"@opentelemetry/api@>=1.9.1 <1.10.0", "@opentelemetry/api@^1.3.0", "@opentelemetry/api@^1.9.0": version "1.9.1" resolved "https://registry.yarnpkg.com/@opentelemetry/api/-/api-1.9.1.tgz#c1b0346de336ba55af2d5a7970882037baedec05" integrity sha512-gLyJlPHPZYdAk1JENA9LeHejZe1Ti77/pTeFm/nMXmQH/HFZlcS/O2XJB+L8fkbrNSqhdtlvjBVjxwUYanNH5Q==