Limits and storage
Plans are priced by storage only. Builds, snapshots and reviewers are not billed.
How storage is counted#
Every image is stored once per account, keyed by its content. A snapshot that did not change between builds adds nothing, however many builds use it. Storage is the size of every stored image: baselines, images from pull requests and diff images. The account's Billing tab shows how much is used. The Free plan has 10 GB, and pricing lists the paid plans.
When an account is over its limit#
- At 80%, the account and project pages show a warning, and the CLI prints one.
- At 100%, a 14 day grace period starts. Everything keeps working, and the banner names the day it ends.
- After the grace period, new images are not stored. Builds still report, but changed snapshots are not compared, and the check passes with "Storage limit reached, not compared". CI keeps passing.
Upgrading, or freeing space with a shorter retention or by deleting a project, ends this as soon as usage is back under the limit.
Owners of the account on GitHub change the plan. Everyone else in the account sees the same warnings, with a note to ask an owner.
A cancelled plan stays until the end of its billing period. If the account then stores more than the Free plan allows, the grace period starts that day. The banner warns about this as soon as the plan is cancelled, and 14 days before any cancelled plan ends.
Retention#
Builds of pull requests are deleted a set time after the pull request closes, 60 days by default. Builds of branches without a pull request are deleted when the branch had no new build for that long. Admins set it from 7 to 365 days under Settings, Retention.
Builds on the default branch and on auto-approve branches are kept, and so is any build that another build uses as its baseline. A daily cleanup removes images that no build has used for 24 hours, and frees their storage. A link to a deleted build says when it was deleted and which rule deleted it.
Limits#
| Limit | Value |
|---|---|
| Snapshots per build | 20,000 |
| Shards per build | 256 |
| Image size | 20 MB |
| Image dimensions | 10,000 x 50,000 px |
| Snapshot name | 512 characters |
| Metadata per snapshot | 4 KB |
| Time to finish a build | 60 minutes |
| Builds per account | 2,000 a day |
| Uploads per account | 20 GB a day |
| Requests per token | 600 a minute |
Images over the size or dimension limits are rejected, their snapshots fail, and upload exits 1. Rate limits make the CLI warn and exit 0.