runlot
ManageLimits

Limits

The limits that apply on the free plan. We notify you before you approach or exceed one.

Every organization is on the Free plan today; the Pro column shows what the plan changes once self-serve billing opens. Every limit below is actually enforced by the service, with two exceptions. Requests are counted but not yet blocked; enforcement starts together with the Pro plan. Database size is measured and notified, but nothing rejects a write at the cap — what happens instead is described below.

ItemFreeProWhen exceeded
Requests100,000 a day3 million a month includedServing stops for the rest of the day.
Projects per organization330409 project_limit
Database size150MB150MBWrites keep working. Backups slow down and cold resume can fail.
Backup retention24 generations (1 day)168 generations (7 days)The oldest generations are deleted first.
File storage1GiB10GiB507 quota_exceeded
Outgoing email (login emails and env.email.send)30 per hour per project300 per hourDelivery is delayed.
Incoming email600 per hour per projectSameRejected at the sender.
Email log retention30 days365 daysThe oldest entries are deleted first.
Log buffer2,000 lines / 1MiB per projectSameThe oldest logs are dropped first.
Bundle upload64MiB compressedSamebundle_too_large
Scheduled execution5 per organization250400 cron_limit

The 150MB database size limit applies to every plan alike — but it is an operational limit, not an engine limit. The engine handles larger databases. 150MB is the size at which an hourly full backup stays cheap, and once incremental backups land the cap goes up.

Nothing blocks a write at 150MB today. At 90% we send a db_near_cap notification, and past the cap two things degrade: every hourly backup takes longer in proportion to the database size, and above roughly 240MB a project that has gone cold can fail to come back (restore_too_large). See The 150MB cap for details.

Scheduled execution also caps the wall-clock time of one run, and that cap comes from the schedule rather than the plan: 30 seconds under an hour, 5 minutes at an hour or longer. See Scheduled execution.

Even after you go over the file storage quota, reads, listings, and deletes keep working. Only writes are restricted, so that you can bring usage back down.

When you hit the project limit

Error [project_limit] the free plan allows up to 3 projects (currently 3)

The response body includes the current limit and usage.

{ "error": { "code": "project_limit", "message": "…", "details": { "limit": 3, "count": 3, "plan": "free" } } }

Clean up projects you no longer use, or tell us at [email protected] if you need more.

Notifications

When you approach or exceed a limit, we notify the organization's admin.

NotificationWhen
project_limitA project creation was rejected by the limit
db_near_capThe database reached 90 % of the cap
storage_near_quotaFile storage reached 90 % of the quota
backup_failedA backup failed after retries
restore_doneA restore finished
dns_publish_stalledA DNS zone has not been published for five minutes

The same kind of notification is sent at most once every 24 hours. This keeps repeated overruns from flooding your inbox.

You can review recent notifications on the organization page in the dashboard. For accounts with no email address on file, the dashboard is the only place notifications appear.

Requests, today and later

Request counts and CPU time are collected as usage today and are not blocked yet. Two things start together with the Pro plan:

  • On the free plan, passing the daily request limit stops serving for the rest of that day — it never turns into a charge.
  • On Pro, requests past the included amount are billed as usage, with spending limits on by default.
runlot usage
runlot usage --hours 168

Why backup retention is one day

Backup generations are taken once an hour. 24 generations is one day, and 168 generations is seven days. Retention differs by plan because of the cost of keeping copies off-site.

Restores also work at hourly granularity; you cannot roll back to an arbitrary point in time. See Backup and restore.

Regions

There is one region today: Seoul. Your application and your database run on the same machine, so an env.db call needs no network round trip.

On this page