---
title: "4xxx delivery and policy errors"
description: "Resolve offline devices, provider rejection, ineligible senders, quotas, and exhausted attempts."
image: "https://help.tidymessages.com/og.svg"
---

> Documentation Index
> Fetch the complete documentation index at: https://help.tidymessages.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 4xxx delivery and policy errors

Resolve offline devices, provider rejection, ineligible senders, quotas, and exhausted attempts.

## How it works

Resolve offline devices, provider rejection, ineligible senders, quotas, and exhausted attempts. TidyMessages keeps channel-specific behavior explicit while providing stable identifiers, safe retries, and auditable lifecycle events.

## Set it up

1. Read the stable code, HTTP status, request ID, and affected resource.
2. Classify the response as validation, permission, state, capacity, provider, media, or transient.
3. Correct permanent failures or retry transient failures with bounded backoff and the original Idempotency-Key.

## What to expect

- The operation is traceable by stable request and resource identifiers.
- Acceptance, provider delivery, and customer interaction remain separate states.
- Retries and reordered events do not duplicate the customer action.
> [!TIP] Apply retry budgets per resource; never replay an entire failed queue at once.

Source: https://help.tidymessages.com/errors/4xxx-delivery-and-policy-errors/index.mdx
