SyncPilledDocs

Limits

The size limits every app has, the per-person limits you can set, and how devices handle a refused change without losing it.

LimitDefaultSet in
One record256 KBApp settings
One file10 MB, at most 25 MBApp settings
One push500 changes, 5 MBFixed
Records one person keepsNo limitApp settings
Files one person keepsNo limitApp settings
Collections devices may push toAnyApp 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_limited with Retry-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.

On this page