Troubleshooting Ingest
Diagnose 400, 401, 413, 429, and 503 errors using the Activity log and filters.
This page covers the most common errors you'll see when sending data to a PayloadRelay relay URL and what to do about each.
Where to look first
Open Activity in the dashboard. Every ingest attempt is logged with:
- Status — the HTTP response code returned to the caller.
- Outcome —
ACCEPTED,AUTH_FAILED,METHOD_NOT_ALLOWED,IP_BLOCKED,PAUSED, etc. - Timestamp — when the request arrived.
Use the Filters panel to narrow by endpoint, status, date range, or outcome. See Observability for full filter details.
401 Unauthorized
Cause: The inbound auth check failed. The endpoint requires authentication but the request either omitted the auth header or supplied incorrect credentials.
Resolution:
- Open the endpoint's edit page and check Security → Inbound Auth.
- Confirm the auth type (Basic / Bearer / API key) and the configured header name.
- Resend with the correct header. Examples:
Authorization: Bearer YOUR_TOKENAuthorization: Basic <base64(user:pass)>X-Api-Key: YOUR_KEY(or your configured header name)
See Sending Data for language-specific examples with auth headers.
413 Payload Too Large
Cause: The request body exceeds the maximum allowed size.
Resolution: Reduce the payload size. If you need to send large binary files, consider uploading to object storage (S3, GCS, etc.) and sending only the reference URL via PayloadRelay.
400 Bad Request — Content validation failed
Cause: The request passed auth but failed content validation. Common sub-causes:
- A required header declared on the endpoint is missing from the request.
- A body filter rejected the payload (for HTTP webhooks this logs
REQUEST_BODY_FILTER_FAILED; for email body-as-payload it logsEMAIL_INGESTION_REJECTED). - A field validation rule failed (e.g., a field is required but null, or fails a regex pattern).
Body filters run against the raw decoded request body for JSON/XML/text, the raw form body for form endpoints, and the raw query string for query-parameter formats. Multiple body filter rules are ANDed: every rule must pass.
Resolution:
- Check the Activity log entry — the
outcomefield often includes a hint. - Open the endpoint's Security tab and verify required headers. Header names are case-insensitive, but values are case-sensitive and incoming values are not trimmed.
- Open the Filter tab and review body filters and field validations.
- Add the missing headers or fix the payload to satisfy the configured rules.
429 Too Many Requests
Cause: One of two rate-limiting mechanisms triggered:
- Monthly quota exhausted — Your subscription's monthly request limit has been reached.
- Resolution: Check Billing → Usage for your remaining quota and reset date. Upgrade your plan if you need a higher limit.
- Per-endpoint rate limit exceeded — The endpoint's per-minute request cap was hit (configured in the endpoint's Details tab).
- Resolution: Wait for the
Retry-Afterheader value (in seconds) and retry. Consider increasing the endpoint's per-minute limit or batching requests at the sender.
- Resolution: Wait for the
For both cases, implement exponential back-off in your sender: when you receive a 429, read the Retry-After header (if present), wait, then retry.
503 Service Unavailable — Endpoint Paused
Cause: The endpoint has been paused temporarily without being fully disabled.
Resolution:
- Open the endpoint's edit page.
- Click Resume in the pause control at the top of the form.
- Alternatively, if the endpoint was scheduled for auto-resume, wait for the pause window to expire.
Endpoint disabled (no response / 404)
Cause: The endpoint is fully disabled (toggle is off).
Resolution: Open the endpoint and flip the Enabled toggle back on.
General debugging tips
- Use the Activity log with
outcome = AUTH_FAILEDfilter to isolate auth problems. - Use
curl -vto inspect exactly which headers are being sent. - Compare your request to the snippets shown on the endpoint edit page — they pre-fill the correct auth header and required headers for your configuration.
- For persistent issues, open a support ticket via the Support page.
Next steps
- Sending Data — code samples for all languages.
- Observability — full Activity log filter reference.
- Endpoint Management — configure auth, required headers, and validation.