npm / @slack/webhook
@slack/webhook
What changed in @slack/webhook 8, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-19.
8 breaking1 deprecations6 new APIs and options2 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli init@slack/webhook 817 changes
Breaking changes 8
This factory function was removed; use the specific error class directly.
HTTP transport now uses the standard Fetch API, with globalThis.fetch as the default implementation.
This factory function was removed; construct an IncomingWebhookHTTPError with new instead.
The agent option was removed; use the fetch option to provide a custom fetch implementation with proxy or TLS support.
The original property was removed; HTTP response details are now available directly as statusCode, statusMessage, and body.
The original property is now a standard Error rather than an AxiosError; the original error is also available through cause.
Node.js 18 is no longer supported; Node.js 20 is now the minimum supported version.
This factory function was removed; construct an IncomingWebhookRequestError with new instead.
Deprecations 1
The interface is deprecated; use instanceof checks with SlackWebhookError or specific error subclasses instead.
New APIs and options 6
A new fetch option accepts a custom fetch implementation, including implementations configured for proxy or TLS support.
Retries can now be opted into for IncomingWebhook and WebhookTrigger.
A new base error class lets you catch all webhook errors with an instanceof check.
A new class supports Workflow Builder triggers.
A trigger-specific HTTP error subclass lets callers distinguish trigger failures from IncomingWebhook failures with instanceof.
A trigger-specific request error subclass lets callers distinguish trigger failures from IncomingWebhook failures with instanceof.
Fixes and other changes 2
Reverts internal packages requiring ESM loading to support backward compatibility.
A 2xx response with an empty or non-JSON body now resolves to { ok: true } instead of throwing and triggering a retry that could cause duplicate Workflow Builder runs.