Understanding webhook status codes

Klaviyo receives HTTP status codes from your third-party providers. These codes are recorded in the platform log and allow you to review and take any appropriate actions.

How to review the status log

To review your webhook’s current status (e.g., if it received an error or is waiting due to a rate limit issue), click on the webhook card itself in your flow builder.

A single webhook action inside a flow that has been clicked onA single webhook action inside a flow that has been clicked on

From here, click View All Activity in the left hand panel.

Inside of the flow builder, the left hand panel showing the View all Activity link near the topInside of the flow builder, the left hand panel showing the View all Activity link near the top

This will take you to review your current, past, and future webhook requests and their current statuses.

The activity log displaying webhook status and number of subscribers at top, and their corresponding email address, error if applicable, and timestamp, belowThe activity log displaying webhook status and number of subscribers at top, and their corresponding email address, error if applicable, and timestamp, below

Status codes recorded by Klaviyo

The list below shows the possible webhook status codes and their meanings.

It’s important to note that occasionally, a unique error code may be generated by a third-party provider.

Retryable error codes include:

  • HTTP 429 Response Code
    A webhook has hit a provider’s rate limit and Klaviyo will proceed with an exponential back-off.
  • HTTP 500 Response Code
    A webhook did not deliver due to an issue with Klaviyo servers issues or errors.
  • HTTP 502 Response Code
    This indicates that our server received an invalid response from another server you are using. Usually this is a transient issue and resolved on a retry.
  • HTTP 503 Response Code
    This indicates that our server is not responding and not ready to handle the webhook request.
  • HTTP 503 Response Code
    Our server cannot generate the current requested webhook request.

Anything that is not a retryable code as noted above, will be moved into the skipped flow queue with the logged unretryable status code. From here, you can troubleshoot the error.

Retries

For any retryable status codes (e.g., 429 codes where a webhook has hit a third-party provider’s rate limit), Klaviyo will retry each evaluation up to 17 times over the course of 24 hours with exponential backoff. This will be at a decreasing rate based on the number of retries that have already occurred.

Additionally, during this retry period, we will log your call as a Waiting to Retry status. If we keep having issues reaching the other provider, your call will go into a Skipped status.

Additional resources