Skip to main content

No Storage | Developer Documentation

No Storage

Updated: Dec 1, 2025
“No Storage” is a custom configuration of Cloud API local storage, where the data in-transit is kept for up to an hour in Meta data centers and the data is not persisted at rest (that is to say, not in Meta data centers nor in AWS In-Country stores).
Outgoing/incoming messages are stored for a maximum of 1 hour in Meta data centers.Outgoing/incoming media blobs are stored for a maximum of 1 hour in Meta data centers.You can pass a custom time-to-live (TTL) — from 1 hour to 30 days — when uploading media to override the 1 hour expiration (particularly useful for marketing campaigns which reuse the same media)

Limitations

When the No Storage feature is enabled, message content is not stored at rest for 30 days as is typical with Cloud API. This introduces the following limitations, which can put a small fraction of your total messaging volume at risk of non-delivery.
Message decryption failures — If a message fails to decrypt on the consumer side, Cloud API can only retry sending the message within a 1-hour TTL window. After this 1-hour window, Cloud API cannot retry the message. You will receive an error webhook indicating the failure. See: Retry Receipt Failures.Webhook delivery failures — Normally, Cloud API retries undelivered webhooks (such as incoming messages or receipts) for up to 7 days. With No Storage enabled, webhook retries are limited to 1 hour. If your webhook server is unavailable beyond this window, the webhook (including incoming messages, receipts, etc.) will be permanently lost. See: Failure to Deliver Webhooks.Incoming media messages — Media attached to incoming messages will be available for download for up to 1 hour. After 1 hour, the media is permanently deleted and cannot be retrieved.

Disable No Storage

Error webhooks

Retry receipt failures

In the case of WhatsApp client decryption failures, we will stop attempting to deliver an undelivared message from a No Storage-enabled number once the TTL is reached. In these cases, a status messages webhook is triggered with error code 131036:
Example payload
Notes:
This error is sent only if we fail to honor a retry receipt sent by the primary device. If the retry fails for a secondary device, we ignore it, as the message will be delivered when syncing with the primary device.It is possible that the message has been successfully delivered to secondary devices but not the primary device. In this case, the webhook will be sent.

Failure to deliver webhooks

By default, Cloud API retries for up to 7 days to deliver incoming messages webhooks. For No Storage-enabled business phone numbers, if we fail to deliver an incoming message webhook, we will drop it and instead send an errors messages webhook with error code 131035: