unstale

npm / @slack/bolt

@slack/bolt

What changed in @slack/bolt 4 to 5, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-20.

9 breaking1 deprecations4 new APIs and options1 behavior and defaults3 fixes and other

See which of these apply to your code, ranked, in your agent:

npx @unstale/cli init

@unstale/cli 0.2.0 on npm

@slack/bolt 517 changes

Breaking changes 8

  • HTTPReceiver and ExpressReceiver reject request bodies larger than 4 MB by default with HTTP 413 before buffering; apps can configure bodyLimit to allow larger payloads or disable the limit.

    5.1.0release notes

  • When no logger option is provided, the default receiver shares the same Logger instance as app.logger, so changing its level after construction affects receiver-side logging too.

    5.0.0release notes

  • The agent option is removed; use clientOptions.fetch to provide a custom fetch implementation for proxy or TLS needs.

    5.0.0release notes

  • The clientTls option is removed; use clientOptions.fetch to provide a custom fetch implementation for proxy or TLS needs.

    5.0.0release notes

  • The unused trailing callback parameter is removed from the AwsHandler type.

    5.0.0release notes

  • The minimum required runtime is Node.js 20; npm must be at least 9.6.4.

    5.0.0release notes

  • respond() uses native fetch for response_url calls, throws RespondError for non-2xx responses, and resolves to a Response on success instead of an axios response object.

    5.0.0release notes

  • The deprecated WorkflowStep class and its associated types, middleware, and utilities are removed. Use CustomFunction and app.function() instead.

    5.0.0release notes

Deprecations 1

  • The legacy AwsCallback export is retained and marked deprecated.

    5.0.0release notes

New APIs and options 4

  • Use clientOptions.fetch to provide a custom fetch implementation for proxy or TLS needs.

    5.0.0release notes

  • context_enterprise_id is added as an optional field for envelopes delivered for Slack Connect channels and Enterprise Grid org-wide apps.

    5.0.0release notes

  • context_team_id is added as an optional field so typed code can route events by the correct workspace.

    5.0.0release notes

  • A dispatcher option is added for proxy or TLS configuration in socket mode.

    5.0.0release notes

Behavior and default changes 1

  • Default error handlers log richer details for web-api errors, including API error codes, rate limit durations, and HTTP status codes, alongside the full error object.

    5.0.0release notes

Fixes and other changes 3

  • The type now allows null, matching AWS API Gateway payloads and APIGatewayProxyEvent so events can be passed directly to an AwsLambdaReceiver handler without a type error.

    5.1.0release notes

  • Authorization errors are now wrapped in AuthorizationError, preserving the original thrown value; non-Error rejections are retained via the wrapped original's cause.

    5.0.0release notes

  • toHandler() returns a 2-argument promise-based function, preventing startup failure on AWS Lambda Node.js 24+.

    5.0.0release notes

@slack/bolt 41 changes

Breaking changes 1

  • Empty signingSecret values are rejected at initialization to prevent accidental HMAC signature forgery.

    4.7.3release notes