Structured error returned by every failing Noizu.Slack call as
{:error, %Noizu.Slack.Error{}} — never raised in the normal flow.
The struct implements Exception so a mid-stream pagination failure can raise it
(Streams cannot return error tuples).
Fields:
:tag— failure class::api— Slack answered{"ok": false, "error": "..."};:reasonis the Slack error string (e.g."channel_not_found"), kept verbatim (no atoms are created from network data).:rate_limited— HTTP 429 persisted past the bounded retry;:reasonis the Slack error string when present (usually"ratelimited").:http— any other non-2xx response without anok:falseenvelope.:invalid_response— a 2xx response whose body is not a Slack envelope.:transport— connection refused, timeout, TLS…;:reasonis the exception.:config— missing token or bad arguments;:reasonis an atom.:upload— thefiles.uploadbyte-transfer step failed.:webhook— an incoming-webhook post failed;:reasonis Slack's text body.:signature—Noizu.Slack.Signature.verify/5rejected a request;:reasonis:invalid_signature,:stale_timestamp, or:invalid_timestamp.:blocks—Noizu.Slack.Blocks.validate/1rejected a payload.
:status— HTTP status when a response arrived.:body— decoded response body (map) or raw body.:message/:summary— human-readable description.
Summary
Types
@type tag() ::
:api
| :rate_limited
| :http
| :invalid_response
| :transport
| :config
| :upload
| :webhook
| :signature
| :blocks