Limits and fair use
Every limit HotCodePush enforces, from the 512 MB bundle size to the rate limits, with what happens at each one, its error code and how to ask for a raise.
HotCodePush publishes its limits. A bundle is at most 512 MB and retention 90 days. The Free plan serves 1,000 monthly active devices. Data transfer, storage, apps and channels are unlimited within fair use.
No limit breaks an installed app: a device refused a new update keeps running the one it has, the fail-open guarantee. Every limit in force for your organization is printed by hotcodepush limit list.
Hard limits
A hard limit is checked when the request arrives and answered with an error that names it, and nothing already stored or released is touched. Byte limits are decimal: 512 MB is 512,000,000 bytes.
| Limit | Value | At the limit | Error |
|---|---|---|---|
| Bundle size, and any single file in it | 512 MB | The upload is refused. | bundle_too_large, HTTP 413 |
| Files per bundle | 10,000 | The upload is refused. | files_per_bundle_limit_reached, 422 |
| Releases per app per day | 100 | The release is refused until the oldest release of the last 24 hours ages out. | releases_per_day_limit_reached, 422 |
| Apps per organization | 1,000 | Creating an app is refused. | apps_limit_reached, 422 |
| Channels per app | 1,000 | Creating a channel is refused. | channels_per_app_limit_reached, 422 |
| Members per organization | 100 | Accepting an invitation or joining through SSO is refused. | members_limit_reached, 422 |
| Invitations per organization per day | 50 | The 51st in 24 hours is refused, withdrawn ones counted. | invitations_per_day_limit_reached, 422 |
| API tokens per user | 100 | Creating an API token is refused. | tokens_limit_reached, 422 |
The hard limits are the same on every plan, and Enterprise starts from the same numbers.
Rate limits
Rate limits are the same on every plan and are not raised per organization. A request over one is answered with HTTP 429, rate_limited and a Retry-After header.
| Requests | Limit | Counted per |
|---|---|---|
| Bundle file uploads | 3,000 per minute | API token, or session |
| Every other API request | 600 per minute | API token |
| Sign-in attempts | 10 per minute per account, and 30 per minute per IP address | account, IP address |
| Public forms: newsletter, unsubscribe, contact | 10 per minute | IP address |
| Device event batches | 10 per minute per device, and 10,000 per minute per app | device, app |
Any request to updates.hotcodepush.com or api.hotcodepush.com | 1,000 per 10 seconds | IP address |
A device that meets a limit retries its batch on its next check, and nothing it reported is lost. Update checks have no rate limit of their own beyond the per-IP limit above.
Monthly active devices
The Free plan's ceiling is on Billing and MAU. On Pay-as-you-go the spending cap sets the number, on Enterprise the contract, and the spending cap page says what a device beyond the ceiling receives.
How a device is counted, and the warning mails before the ceiling, are on Billing and MAU.
Fair use
"Unlimited" is backed by a fair-use policy, which covers storage, data transfer, apps and channels. The organization is contacted before anything is enforced.
Retention
Retention is 90 days on every plan and applies to unused bundles only. A bundle no release has served for 90 days is deleted with its files. A store build no device has reported for 90 days retires from delivery.
The update a channel serves and a bundle devices still run are never deleted. A longer retention is an Enterprise term. What every other kind of data is kept for is on Privacy and device data.
Raising a limit
hotcodepush limit list prints every limit in force with its key, its value, the plan's default and whether it is overridden. The API answers the same to an Owner or Admin, the limits operation of the Swagger reference. The keys are appCountLimit, bundleBytesLimit, channelCountPerAppLimit, fileCountPerBundleLimit, invitationCountPerDayLimit, memberCountLimit, releaseCountPerAppPerDayLimit, retentionDays, storageBytesLimit and tokenCountLimit.
To ask for a raise, mail support@hotcodepush.com with your organization's name and the key. Storage, files per bundle, releases per day, apps, channels, members and retention can be raised for one organization. The bundle size, the invitations per day, the tokens per user and the rate limits have one value for everyone.
A raise applies at once, shows as overridden in limit list and is recorded as organization.limit_overridden in the audit log.
Last updated on
Billing and MAU
How HotCodePush counts monthly active devices, what each plan costs, how the spending cap bounds the bill and what the invoice and a refund look like.
Organizations
What a HotCodePush organization holds, its ownership, deletion, members, invitations, roles, single sign-on, two-factor requirement and network restrictions.