Skip to main content

HTTP Response Status Codes

Overview

This document provides a comprehensive overview of the HTTP response status codes return by Memfault's API, including their meanings, causes, and recommended client handling.

HTTP Codes

Status CodeNameDescriptionRetry Behavior
2xx Success Codes
200Success

The request was successful. If an action was requested, it was performed synchronously. Data has been returned.

Do not retry
202Accepted

The request was successful. If an action was requested, it is performed asynchronously.

Do not retry
204No Content

The request was successful. If an action was requested, it was performed synchronously. There is no data returned.

Do not retry
4xx Error Codes
400Bad Request

The server can not process the request due to a client error. Please refer to API documentation, or contact us.

Do not retry
401Unauthorized

The client is not authenticated or has missing credentials in the request.

Do not retry
403Forbidden

Access to this resource has not been granted. Can also be a result of a quota limit or Memfault plan.

Do not retry
405Method Not AllowedThe route or method implementation does not exist.Do not retry
409ConflictA duplicate resource exists.Do not retry
429Too Many RequestsThe rate limit has been hit.

Do not retry. If Retry-After header is present, retry after given seconds.

5xx Success Codes
500Internal Server Error

This shouldn't happen! If seen, please contact us.

Do not retry
502Bad Gateway

This shouldn't happen! If seen, please contact us.

Retry with exponential backoff
503Service UnavailableMemfault is down for maintenance.Retry with exponential backoff
504Gateway Timeout

The request took too long. If seen, please contact us.

Retry with exponential backoff
529Site is overloadedMemfault is under excessive load.

Retry honoring the Retry-After response header, if provided. Otherwise retry with exponential backoff

Retries With Exponential Backoff

For HTTP requests identified for retry in the table above, Memfault recommends up to five retry attempts with an exponential backoff of 23n2^{3n} seconds between attempts (where nn is the retry number). The example retry strategy follows.

Retry AttemptWait Time (seconds)
18
264
3512
44096
532,768

Retry-After HTTP Response Header

5xx and 429 responses can optionally include a Retry-After header. The Retry-After header provides the minimum time the client should wait before retrying the request. The header value can be an integer number of seconds or a date string. For more information, see the MDN Web Docs.