Troubleshoot webhooks

Start with the request ID and delivery

Management errors use application/problem+json. Record the request_id when contacting Oway.
Delivery detail includes safe attempt status, duration, outcome, and retry time without exposing
your response body.

Problem reasons

ReasonWhat to do
cursor_invalidRestart pagination without the cursor; cursors are scoped and opaque.
delegation_invalidReauthenticate and retry; contact support with the request ID if the error persists.
idempotency_key_conflictUse the original bytes or a new idempotency key.
idempotency_key_requiredAdd one printable Idempotency-Key header.
internal_errorRetry safely with the same idempotency key and retain request_id.
precondition_failedRead the endpoint, reconcile, and retry with its latest ETag.
precondition_requiredAdd the latest strong If-Match ETag to the PATCH.
request_too_largeKeep the management request body at or below 64 KiB.
validation_failedCorrect the invalid or unknown request fields.
webhook_audience_forbiddenUse credentials for the endpoint's shipper or carrier audience.
webhook_delivery_not_foundConfirm the delivery belongs to the current company/audience.
webhook_delivery_not_replayableThe immutable body passed its retention boundary.
webhook_endpoint_archivedCreate a new endpoint; archive is permanent.
webhook_endpoint_limit_reachedArchive an unused endpoint before creating another.
webhook_endpoint_not_foundConfirm the endpoint belongs to the current company/audience.
webhook_endpoint_pausedCorrect the delivery failure and complete the resume test.
webhook_event_not_availableRefresh the catalog and choose an event for your audience.
webhook_url_forbiddenUse a public destination; a DNS answer was non-public.
webhook_url_invalidUse a canonical HTTPS URL on port 443 without embedded credentials.

Delivery outcomes

  • http_error: inspect the status. 410 pauses immediately; other non-2xx responses retry.
  • network_error: confirm public DNS, firewall rules, port 443, and the Oway egress allowlist.
  • timeout: respond within 15 seconds and move processing behind a queue.
  • ssrf_rejected: the URL or a fresh DNS answer violated destination policy; update the URL.
  • cancelled: the attempt stopped before completion. Check the endpoint state and delivery history.

Terminal reasons gone, ssrf_rejected, retry_exhausted, and
retry_window_exhausted pause the endpoint. Correct the cause, then call resume; Oway requires a
successful signed test before production delivery becomes active.

Invalid signatures usually come from parsing before verification, using the whsec_ text as the
HMAC key without base64-decoding it, ignoring the second rotation signature, or clock drift beyond
five minutes.


Did this page help you?