What does the decoder do?▾
It takes whatever Slack gave you back when your webhook POST failed, a full response body, the HTTP status line, or just the error string, and tells you what it means, what usually causes it, and how to fix it. Slack's error vocabulary is small but oddly named (no_service, invalid_payload, channel_not_found, action_prohibited); each code looks cryptic until you've memorised what it stands for. The decoder is the lookup table.
How is this different from the webhook checker?▾
The webhook checker (at /tools/slack-webhook-tester) does a live POST to your URL and reports back what Slack said, you get a fresh response. The error decoder is the offline interpreter, you already have an error (from a script log, a developer console, a screenshot) and want to know what it means without sending another request. They're complementary: webhook checker for 'is this still alive?', error decoder for 'what does this error code I'm staring at actually mean?'
What errors does it recognise?▾
The thirteen most common Slack incoming webhook responses: no_service, no_team, invalid_payload, invalid_blocks, invalid_blocks_format, invalid_token, channel_not_found, action_prohibited, rate_limited, user_not_found, missing_text_or_fallback_or_attachments, HTTP 405 method-not-allowed, and timeout. If Slack returns something not in this list, the decoder tells you so explicitly, usually that means the response was truncated when copied, or the failure happened before reaching Slack (DNS, TLS, firewall).
Can I paste the raw HTTP response?▾
Yes. The decoder substring-matches against the input so you can paste whatever you have, the full curl output, the response body alone, a screenshot transcription, an error message your script logged. If multiple known codes appear in your paste (sometimes a response includes the error name in JSON and again in a debug header), the decoder shows a card for each.
What if I only have an HTTP status code?▾
Paste just the number — '400', '404', '429', etc. The decoder maps each status to the Slack error codes most likely to produce it. HTTP 404 narrows to no_service / no_team / channel_not_found; HTTP 400 narrows to invalid_payload / invalid_blocks / missing_text_or_fallback. You'll get multiple cards in that case, pick the one whose description matches what you actually observed.
Where do these error codes come from?▾
Slack's incoming-webhooks endpoint returns them in the response body when a POST fails. They're documented across api.slack.com but spread across several pages, incoming-webhooks, block-kit-builder, errors. This decoder consolidates the ones that actually appear in production with form-to-Slack integrations into one lookup.
Will Slack add new error codes that aren't here?▾
Slack does occasionally introduce new error responses, especially around new Block Kit features or Enterprise Grid policies. If you hit one we don't recognise, the decoder will tell you 'no known error matched' and you'll fall back to api.slack.com's documentation. We update this list as we see new codes in real failures.
Does this send anything to Slack?▾
No. Everything runs in your browser, your error text never leaves your machine. There's nothing to send: we're parsing what Slack already returned to you.