Skip to main content

Rate Limiting

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:

Rate LimitScopePlatformDetails
Ingestion of Custom ReportsDeviceAllCustom 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 endpointDeviceAllThe Latest Release endpoint returns the latest Release that should be installed for a given device.
Ingestion of Log FilesDeviceAllLog Files uploaded by Bort through the Caliper system (Android) or using the memfault_log_trigger_collection() API (MCU).
Ingestion of Custom Data RecordingsDeviceAllCustom 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 EventsDeviceAllReboot 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 EventsDeviceMCUTrace Events are a MCU-specific feature allowing the capturing of an issue without sending a full Coredump.
Ingestion of CoredumpsDeviceMCUCoredumps are a source of Issues for MCU Projects.
Ingestion of ChunksDeviceMCUChunks are packets of data coming from the Memfault Firmware SDK.
Ingestion of ELF CoredumpsDeviceLinuxELF Coredumps are a source of Issues for Linux Projects.
Ingestion of Bug ReportsDeviceAndroidBug Reports are Android-specific files.
Ingestion of Drop Box Manager EntriesDeviceAndroidDrop 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 FilesDeviceAndroidThe output of Android's Batterystats subsystem is periodically polled and uploaded by Bort through the Caliper system.
Ingestion of Custom EventsDeviceAndroidCustom 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.

The interface to enable Server-Side Developer mode for a device in the Memfault app

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.