# What changed in @vercel/otel

> 27 changes in @vercel/otel 1 to 2 from its official release notes, upgrade guides and advisories: 12 breaking, 8 new APIs and options. Each one cited. Sources checked 2026-11-11. HTML: https://unstale.sh/npm/@vercel/otel/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @vercel/otel 2

### Breaking changes

- Inbound baggage headers are limited to 180 entries and 8,192 bytes, and entries larger than 4,096 bytes are skipped. (2.2.0) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.2.0)
- When trace drains are used, auto-configuration based on OTEL_EXPORTER_OTLP_ environment variables is ignored to avoid duplicate trace export. (1.14.0, 2.1.0) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.1.0), [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%401.14.0)
- The minimum supported Node.js version is now ^18.19.0 || >=20.6.0; Node.js 14 and 16 are no longer supported. (2.0.0) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.0.0)
- The compatible version range is now >=1.9.0 <3.0.0, raised from >=1.7.0 <2.0.0. (2.0.0) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.0.0)
- The compatible version range is now >=0.200.0 <0.300.0, raised from >=0.46.0 <0.200.0. (2.0.0) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.0.0)
- The compatible version range is now >=0.200.0 <0.300.0, raised from >=0.46.0 <0.200.0. (2.0.0) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.0.0)
- The compatible version range is now >=2.0.0 <3.0.0, raised from >=1.19.0 <2.0.0. (2.0.0) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.0.0)
- The compatible version range is now >=0.200.0 <0.300.0, raised from >=0.46.0 <0.200.0. (2.0.0) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.0.0)
- The compatible version range is now >=2.0.0 <3.0.0, raised from >=1.19.0 <2.0.0. (2.0.0) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.0.0)
- The compatible version range is now >=2.0.0 <3.0.0, raised from >=1.19.0 <2.0.0. (2.0.0) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.0.0)
- Replace the single `logRecordProcessor` option with `logRecordProcessors`, an array of processors. (2.0.0) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.0.0)
- Replace the single `metricReader` option with `metricReaders`, an array of readers. (2.0.0) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.0.0)

### New APIs and options

- When this environment variable is set and no OTLP endpoint is configured, the 'auto' exporter sends traces over the Unix socket. (2.3.0) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.3.0)
- Processors in spanProcessors now receive onEnding, allowing span attributes to be changed or removed before any exporter sends the span, including the 'auto' exporters. (2.2.1) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.2.1)
- Configure the OTLP export timeout in milliseconds. (2.2.0) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.2.0)
- Configure the OTLP trace export timeout in milliseconds. (2.2.0) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.2.0)
- Set the export request timeout in milliseconds; requests now abort after 10 seconds by default. (2.2.0) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.2.0)
- Set how long the span flush queued in `waitUntil` waits before giving up; the default is 10 seconds on Vercel. (2.2.0) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.2.0)
- Vercel defaults now emit the OpenTelemetry resource attribute cloud.provider with the value vercel. (2.1.3) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.1.3)
- @vercel/otel adds support for OpenTelemetry JS SDK 2.x. (2.0.0) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.0.0)

### Behavior and default changes

- OTLP JSON exports now include a flags field on each span and link; sampled spans send 257, or 769 when the parent is remote. http/protobuf exports are unchanged. (2.2.1) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.2.1)
- Set the export request timeout in milliseconds; requests now abort after 10 seconds by default. (2.2.0) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.2.0)
- Adds standard OpenTelemetry resource attributes for VCS. (1.14.1, 2.1.2) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.1.2), [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%401.14.1)

### Fixes and other changes

- An export that fails before sending reports the failure right away instead of stalling for 30 seconds. (2.2.0) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.2.0)
- Prevents duplicate spans when code running before registerOTel replaces get with a function that calls the exported request. (2.1.4) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.1.4)
- System environment variables are no longer inlined. (2.1.1) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%402.1.1)

## @vercel/otel 1

### Fixes and other changes

- Avoids local OTLP exports for drained Vercel traces when request context is lost before span end. (1.14.2) — [release notes](https://github.com/vercel/otel/releases/tag/%40vercel/otel%401.14.2)
