Slack error too_many_attachments: More than 100 attachments on a message
Last verified against Slack API reference - chat.postMessage errors
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
- 1Cap attachments well below 100 and summarize the overflow ('and 42 more...').
- 2Migrate the layout to Block Kit blocks (50 per message) or split content across several messages or a thread.
- 3Move bulk detail into a file upload or an external link with a short summary message.
- 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.