Limits
The size limits every app has, the per-person limits you can set, and how devices handle a refused change without losing it.
| Limit | Default | Set in |
|---|---|---|
| One record | 256 KB | App settings |
| One file | 10 MB, at most 25 MB | App settings |
| One push | 500 changes, 5 MB | Fixed |
| Records one person keeps | No limit | App settings |
| Files one person keeps | No limit | App settings |
| Collections devices may push to | Any | App settings |
When a limit is reached
Limits only ever refuse growth. A deletion, a pull, an export and deleting an account always work, so nobody is locked out of their data or out of freeing space.
- A record or file over its size limit answers
413 payload_too_large. For a record, the whole push is refused and the sync stops with an error, so keep records under the limit in your app; a person's other changes wait until it is fixed. - A change that would grow past a person's limit is refused on its own, in the push
answer:
{ "status": "refused", "code": "quota_exceeded" }. The rest of the push still applies. The device keeps the change and sends it again later. - A file past a person's limit answers
507 quota_exceeded. The device holds back the record that names it. - A change to a collection the app does not take is refused with
collection_not_allowed. - Too many requests answer
429 rate_limitedwithRetry-After.
Set per-person limits and collections once your app handles refusals
SyncPilled's Swift package 0.2 and later keep a refused change and carry on. Older versions stop the whole sync at the first refusal. Set these limits only once the versions of your app in use handle them.