HotCodePush

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.

LimitValueAt the limitError
Bundle size, and any single file in it512 MBThe upload is refused.bundle_too_large, HTTP 413
Files per bundle10,000The upload is refused.files_per_bundle_limit_reached, 422
Releases per app per day100The release is refused until the oldest release of the last 24 hours ages out.releases_per_day_limit_reached, 422
Apps per organization1,000Creating an app is refused.apps_limit_reached, 422
Channels per app1,000Creating a channel is refused.channels_per_app_limit_reached, 422
Members per organization100Accepting an invitation or joining through SSO is refused.members_limit_reached, 422
Invitations per organization per day50The 51st in 24 hours is refused, withdrawn ones counted.invitations_per_day_limit_reached, 422
API tokens per user100Creating 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.

RequestsLimitCounted per
Bundle file uploads3,000 per minuteAPI token, or session
Every other API request600 per minuteAPI token
Sign-in attempts10 per minute per account, and 30 per minute per IP addressaccount, IP address
Public forms: newsletter, unsubscribe, contact10 per minuteIP address
Device event batches10 per minute per device, and 10,000 per minute per appdevice, app
Any request to updates.hotcodepush.com or api.hotcodepush.com1,000 per 10 secondsIP 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

On this page