Memfault employs rate limiting to prevent malfunctioning devices from causing excessive amounts of traffic on the platform, which in turn improves site stability. Rate limits also help us provide fair pricing to our customers.
Below is a list of the APIs and payloads that may be rate-limited:
|Ingestion of Custom Reports||Device||All||Custom Reports are a primitive data type from which Metrics (both Timeseries and Attributes) are created. Heartbeats are built on top of Custom Reports and are limited to 100 per device per 24-hour period.|
|Calls to the Latest Release endpoint||Device||All||The Latest Release endpoint returns the latest Release that should be installed for a given device.|
|Ingestion of Log Files||Device||All||Log Files uploaded by Bort through the Caliper system (Android) or using the |
|Ingestion of Custom Data Recordings||Device||All||Custom Data Recordings (CDR) are sets of user defined data of any custom format that are sent from a device. Limited to 1 CDR upload per device per 24-hour period, and a maximum size of 16MB per CDR upload payload|
|Ingestion of Reboot Events||Device||All||Reboot Events uploaded by Bort through the Caliper system (Android), using the Reboot Reason Tracking subsystem (MCU) or Reboot Reason Tracking plugin (Linux).|
|Ingestion of Trace Events||Device||MCU||Trace Events are a MCU-specific feature allowing the capturing of an issue without sending a full Coredump.|
|Ingestion of Coredumps||Device||MCU||Coredumps are a source of Issues for MCU Projects.|
|Ingestion of Chunks||Device||MCU||Chunks are packets of data coming from the Memfault Firmware SDK.|
|Ingestion of ELF Coredumps||Device||Linux||ELF Coredumps are a source of Issues for Linux Projects.|
|Ingestion of Bug Reports||Device||Android||Bug Reports are Android-specific files.|
|Ingestion of Drop Box Manager Entries||Device||Android||Drop Box Manager Entries uploaded by Bort through the Caliper system are produced by Android and can contain Java Exceptions, ANRs and Tombstones.|
|Ingestion of Batterystats Files||Device||Android||The output of Android's Batterystats subsystem is periodically polled and uploaded by Bort through the Caliper system.|
|Ingestion of Custom Events||Device||Android||Custom Events are batch-uploaded by Bort periodically and also when the number of pending events reaches a threshold (by default, 1000 events).|
Server-Side Developer Mode
Memfault allows you to enable Server-Side Developer Mode for a specific Device in your Project. This mode allows you to bypass the rate limits for that Device temporarily. This is useful for development and testing purposes. To enable Server-Side Developer Mode for a Device, navigate to the Device Details page for that Device and click the "Developer Mode" tab. In here you will find detailed information on how Server-Side Developer Mode works and how to enable it for a Device.
Server-Side Developer Mode is compatible with all Memfault Device SDKs, including Linux, Android, and MCU.
In addition to Server-Side Developer Mode, Memfault SDKs also offer a Developer Mode feature on Linux and Android. This feature enables additional functionalities in the Memfault SDKs. There is no equivalent feature for MCU Projects, but Server-Side Developer Mode can nevertheless be used stand-alone on MCU Projects.
The number of Devices that can be put in Server-Side Developer Mode simultaneously is currently limited.