How to Use Arattai Webhook Logs to Debug Message Delivery Issues

How to Use Arattai Webhook Logs to Debug Delivery Issues

When a webhook is not arriving, the logs tell you whether Arattai sent it and what your endpoint said back.


What a Log Entry Shows  

Field

What it tells you

Event

Which event Arattai tried to deliver

Endpoint

The URL it was sent to

Attempt

Whether this was the first try or a retry

Response status

What your endpoint returned, or that it did not respond

Timestamp

When Arattai sent it

Use the filters to narrow things down by event, endpoint or status. Logs are retained for a limited period.


How to Debug an Endpoint That Is Not Receiving Events  

  1. Check that Arattai sent it. Find the event in the logs. If there is no entry, the problem is upstream, check that the webhook is not paused, and that the event is actually selected in your subscription.

  2. Read the response status:

    • A client error usually means your handler rejected the request, most often a failed signature check.

    • A server error means your handler ran and crashed.

    • No response at all means a timeout or an unreachable host.

  1. Count the attempts. Repeated retries against the same event tell you the failure is consistent, not a one-off.

  2. Verify the signature check. If you recently rotated your shared secret, an endpoint still using the old one rejects everything. This is the most common cause of a sudden, total failure.

  3. Check reachability. The endpoint must be publicly reachable with a valid certificate. A certificate that expired recently looks exactly like this.


Quick Diagnosis Guide  

Symptom

Cause

Everything failing at once, starting at a specific moment

Secret rotation, an expired certificate, or a deployment

Events failing intermittently

A timeout, your handler is doing too much work before responding


Tracing One Message End to End  

To follow a single message from your API call to its outcome, take the message ID from the API response and search the logs for it. You will see chat.message.sent, then either chat.message.delivered or chat.message.failed, with the timestamps between them.