Skip to main content

Usage Limits

Usage limits let you cap how much usage a single deployment can consume per day or calendar month. They're a guardrail against runaway workloads: a scheduled function stuck in a loop, an action hammering a third-party API, or unexpected traffic spike that would otherwise show up on your bill.

Deployment limits are especially useful on development deployments, where an AI coding agent left running unattended can burn through a lot of usage.

Usage limits are set per deployment and measured in resources. If you want to cap what your whole team pays in dollars, use spending limits instead.

You can configure usage limits from the usage limits page in the dashboard.

Deployment settings usage limits page

Thresholds

Each metric can have two thresholds, each enforced over a daily or monthly window:

  • The warning threshold is a soft limit: when it is exceeded, an event is recorded on the deployment's history page.
  • The disable threshold is a hard limit: when it is exceeded, the deployment is disabled for the rest of the window, and new function calls return an error explaining that the deployment exceeded a usage limit.

When either threshold is exceeded, Convex emails all team members. Development deployments send no email, so only the disable threshold is available there.

A deployment disabled by a usage limit is re-enabled automatically when the window rolls over, or as soon as you raise, disable, or delete the limit that tripped.

Windows

Limits cover calendar windows in UTC, not rolling windows:

  • Daily limits reset at midnight UTC.
  • Monthly limits reset on the first of the month, at midnight UTC.

For example, a daily disable threshold of 5 GB of database I/O counts all usage since midnight UTC. If the deployment crosses it at 11pm UTC, it is disabled for the remaining hour — not for the next 24 hours — and comes back at midnight.

Metrics

MetricUnitWhat it counts
Function callscallsQuery, mutation, action, HTTP action, and file storage calls.
Query/Mutation computeGB-hoursCompute consumed running queries and mutations.
Action compute (Convex runtime)GB-hoursCompute consumed running actions in the Convex runtime.
Action compute (Node.js)GB-hoursCompute consumed running actions in the Node.js runtime.
Action compute (CPU)GB-hoursCPU time consumed running actions.
Database I/OGBBandwidth used reading from and writing to the database.
Search queriesquery-GBBandwidth used serving text and vector search queries.
Data egressGBBandwidth used serving file downloads, outgoing fetch requests, and log stream egress.

Which compute metrics your team is billed for depends on your plan and deployment class (see pricing). Limits are enforced on every metric you configure, whether or not you're billed for it.

Audit log

Every change to a deployment's usage limits is recorded on the deployment's history page. The history page also shows when a limit was exceeded and when the deployment was disabled or re-enabled.