Slack API · error code

Slack error too_many_attachments: More than 100 attachments on a message

Permanent - do not retryHTTP 200Message content & Block Kit

Last verified against Slack API reference - chat.postMessage errors

What Slack returns
Too many attachments were provided with this message. A maximum of 100 attachments are allowed on a message.

What error too_many_attachments means

The message carries more legacy attachments than Slack accepts. The documented description states the boundary itself: "Too many attachments were provided with this message. A maximum of 100 attachments are allowed on a message." (Slack's method pages even use this exact string as their sample error response.) A related documented error, attachment_payload_limit_exceeded, fires when the attachment payload's overall size — rather than count — is too large.

If you are anywhere near 100 attachments, the design is fighting the medium. Legacy attachments (the colored-bar format predating Block Kit) survive mostly in old integrations and webhook-era code; Slack's current guidance is to compose rich messages with Block Kit blocks, which have their own explicit budgets (50 per message). Bulk data belongs in a file upload or a link out to a dashboard, not in dozens of attachments stapled to one message.

Like all content-validation errors it is deterministic: the same payload fails every time, so the fix is upstream where the attachments are accumulated — typically a loop aggregating items (alerts, order lines, results) into attachments without a cap.

What it looks like

{"ok": false, "error": "too_many_attachments"}

Why it happens

  • A loop converts an unbounded list of items into one attachment each, with no cap.
  • An aggregation/digest job staples a large batch into a single message.
  • Legacy webhook-era code paths that never anticipated production data volumes.

How to fix Slack error too_many_attachments

  1. 1Cap attachments well below 100 and summarize the overflow ('and 42 more...').
  2. 2Migrate the layout to Block Kit blocks (50 per message) or split content across several messages or a thread.
  3. 3Move bulk detail into a file upload or an external link with a short summary message.
  4. 4If you receive attachment_payload_limit_exceeded instead, reduce the total attachment payload size, not just the count.

How to stop it recurring

Set an application-level maximum (single digits, realistically) on attachments per message and design digests to paginate. New surfaces should use Block Kit from the start; the attachment count table lives in Slack blocks & attachments limits.

Official reference: Slack API reference - chat.postMessage errors. See all Slack error codes or the Slack limits and quotas.

Related codes

Error too_many_attachments - quick answers

What does Slack error too_many_attachments mean?

The message carries more legacy attachments than Slack accepts. The documented description states the boundary itself: "Too many attachments were provided with this message.

How do I fix Slack error too_many_attachments?

1. Cap attachments well below 100 and summarize the overflow ('and 42 more...'). 2. Migrate the layout to Block Kit blocks (50 per message) or split content across several messages or a thread. 3. Move bulk detail into a file upload or an external link with a short summary message. 4. If you receive attachment_payload_limit_exceeded instead, reduce the total attachment payload size, not just the count.

Should I retry after error too_many_attachments?

No. Retrying the same request produces the same error; the condition has to be fixed first. Treat it as a permanent failure for that message and surface it, rather than looping.

Stop debugging Slack by hand

Connect the channel through Conferbot: tokens, webhooks and retries are handled, failures show as readable status.