| navigation_title | Breaking changes | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|
| applies_to |
|
Before you upgrade, carefully review the Elastic APM Node.js Agent breaking changes and take the necessary steps to mitigate any issues.
To learn how to upgrade, check out Upgrading.
% ## Next version [next-version] % Release date: Month day, year
% ::::{dropdown} Title of breaking change
% Description of the breaking change.
% For more information, check [PR #](PR link).
% Impact
Impact of the breaking change.
% Action
Steps for mitigating deprecation impact.
% ::::
Release date: Sep 25, 2025
::::{dropdown} Drop support for directly instrumenting Next.js
Direct instrumentation of the next npm package has been removed.
Instrumentation of Next.js was a technical preview and only ever supported
instrumenting next versions 12.0.0 - 13.3.0, all of which are now obsolete.
It is recommended that Next.js users use the native OpenTelemetry instrumentation
included in Next.js itself.
For more information, check PR #4757.
::::
Release date: November 23, 2023
- Drop support for next@11. Next.js instrumentation support is currently in technical preview, so it is not considered a semver-major change to drop support for this old version of next. For more information, check (#3664).
- Set the new minimum supported Node.js to version 14.17.0. Users of earlier Node.js versions can use elastic-apm-node v3.x, which supports back to Node.js v8.6.
- Ignore a
timeroption passed tostartTransaction()andstartSpan()APIs. This option was never documented. It would be surprising if any user is impacted by this. - Remove long deprecated support for the
ELASTIC_APM_-prefixed environment variables for the Kubernetes config options. For example, one must useKUBERNETES_POD_NAMEand notELASTIC_APM_KUBERNETES_POD_NAME. (#2661) - The config option
filterHttpHeadersis now removed. (#3539) - Remove the deprecated
span.toString()andtransaction.toString()APIs. (#2348) - Remove instrumentation support for the old hapi package — the current @hapi/hapi package is still instrumented. (#2691)
- Change
apm.startTransaction()api to return a noop transaction instead of null, if the agent is not yet started. (#2429) - Drop support for the obsolete "patch" context manager, i.e. the
contextManager: "patch"config option. This was a limited async context management that predated the preferredAsyncLocalStoragecore Node.js mechanism for context tracking. It was deprecated in v3.37.0. As well, the related and deprecatedasyncHooksconfig option has been removed. (#3529) - Remove the
logUncaughtExceptionsconfig option. (#2412) - Remove
transaction.subtypeandtransaction.actionproperties from API. This also impactsapm.startTransaction([name][, type][, options])andtransaction.setType(...), both of which now no longer acceptsubtypeandactionparameters. These two properties were deprecated in v3.25.0. (#3557) - Remove support for the erroneous
ELASTIC_SANITIZE_FIELD_NAMESandELASTIC_IGNORE_MESSAGE_QUEUESconfig environment variables. The correct env vars areELASTIC_APM_SANITIZE_FIELD_NAMESandELASTIC_APM_IGNORE_MESSAGE_QUEUES, respectively, and were supported starting in v3.36.0.