Skip to content

Third-party compat watch (2026-10-21): OpenTelemetry JS 3.0 GA removes @opentelemetry/sdk-trace-base, which @bugsee/opentelemetry declares as a peer #94

Closed

Description

@krassx

Daily third-party compatibility check for the JS SDK. One actionable item since the last run (2026-10-20).

OpenTelemetry JS 3.0.0 / experimental 0.300.0 / API 1.10.0 are GA (Oct 20, 18:23 UTC)

npm latest is now @opentelemetry/core 3.0.0 and @opentelemetry/api 1.10.0. @opentelemetry/sdk-trace-base stays at 2.12.0 and gets no 3.x release, because the package was removed.

What @bugsee/opentelemetry declares today: optional peers @opentelemetry/api >=1.0.0 and @opentelemetry/sdk-trace-base >=1.0.0, dev deps @opentelemetry/api ^1.9.0 and @opentelemetry/sdk-trace-base ^2.12.0. The span processor uses structural types (no OTel imports), covering the SDK 1.x parentSpanId and 2.x parentSpanContext shapes.

Changes that touch us

  • @opentelemetry/sdk-trace-base, sdk-trace-web and sdk-trace-node are removed and replaced by a single @opentelemetry/sdk-trace package (#7117, #7054). OTel 3 users won't have sdk-trace-base installed, so our peer declaration, docs and samples point at a package that no longer exists on 3.x. @opentelemetry/sdk-trace 3.0.0 is on npm.
  • The Attributes value type is widened with AnyValue (complex attributes, OTEP 4485) in @opentelemetry/api 1.10 (#6780). The release notes call this a breaking change for SDK implementations. Our consume path (readableSpanToConsumed) and the to-OTLP/from-OTLP mapping may now see nested objects, arrays of mixed types or byte arrays in span attributes, so the wire mapping needs to handle or drop them deliberately.
  • Exports maps everywhere; deep imports into build/... and <pkg>/package.json no longer resolve (#6293). The browser field was replaced with #platform subpath imports, so webpack needs 5.54+ and bundlers without imports support fail (#7141). Worth checking our bundler plugins and the browser/webworker/edge builds if any of them pull OTel in.
  • Minimum Node.js is now >=22.15.0 (18 and 20 dropped). Our engines are >=18 with a 18–24 matrix, so OTel 3 can only be tested on the 22/24 legs.
  • Removed from @opentelemetry/core: getTimeOrigin, otperformance, _globalThis, unrefTimer (#7053). Removed TracerProviderOptions.forceFlushTimeoutMillis (#7057). The Jaeger propagator and exporter are gone in favour of W3C Trace Context and OTLP (#7077). The Logs API moved into @opentelemetry/api, and @opentelemetry/api-logs is gone (#4862).
  • API 1.10 adds an optional context.attach() on ContextManager (#6845). This is additive and only relevant if we ever ship our own context manager.
  • Only experimental 0.300.x is compatible with stable 3.0.0, so mixed 2.x/3.x installs in customer apps will be common for a while.

Links: v3.0.0 release, experimental/v0.300.0, api/v1.10.0, 3.x migration guide.

Suggested follow-up

  1. Add @opentelemetry/sdk-trace (>=3) as an optional peer next to sdk-trace-base (keep >=1 <3 for 1.x/2.x users), and update docs/design/opentelemetry-integration.md and the samples.
  2. Run the span-processor and OTLP tests against a real @opentelemetry/sdk-trace@3 TracerProvider (Node 22+), and confirm the ReadableSpan shape still matches ReadableSpanLike and our processor is still assignable to SpanProcessor.
  3. Decide how complex AnyValue attributes map to the Bugsee wire format (serialize, flatten, or drop), and add fuzz cases for them.
  4. Make sure nothing in the SDK deep-imports OTel build/ paths or reads @opentelemetry/*/package.json.

rrweb

npm latest for rrweb and @rrweb/types is still 2.1.7. packages/rrweb requires ^2.1.7, and the fork pin bugsee/rrweb#ad172467 is unchanged on 2.1.7, so no update PR is needed.

Other movement since yesterday (no action)

Solid 2.0.0-rc.16 and @solidjs/router 2.0.0-next.41, Electron 45.0.0-beta.6 (latest 44.9.2), Rspack 2.3.0-beta.0, Next 16.5.0-canary.21, React canary bumps, Rollup 4.64.12, Wrangler 4.151.3 and the daily workerd builds. Node is still v26.12.0 and Deno is still 2.9.7.


Filed automatically by the Bugsee JS SDK third-party compatibility tracker (weekday check). Versions and dates come from the npm registry and GitHub releases on 2026-10-21.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions