Skip to content

Limits and regions

Every function gets https://<name>.fn.dockhive.app, where <name> is the name you chose (lowercase letters, digits and dashes) followed by a short suffix, for example orders-k3x9. Any method and any path on that host reach your handler. Calls to a name that doesn’t exist get a 404 page.

A function lives in the region you pick when you create it, and it runs there: put it close to your users or to the services it calls. It can’t be moved later; create a new function in another region instead. Its URL works from anywhere.

Region CLI value
United States us
Europe (London) eu
Germany de
Portugal pt
Asia (Singapore) asia
South Africa africa
Nigeria (Lagos) ng
Nigeria (Abuja) abuja

Allowances apply per account, in each region: the function count and the monthly totals are counted separately in every region you use.

Plan Functions Requests a month Compute units a month
Free 5 100,000 100,000
Pay as you go 50 100,000 included 100,000 included
Developer 50 2,000,000 included 2,000,000 included
Pro 200 20,000,000 included 20,000,000 included
Scale 1,000 200,000,000 included 200,000,000 included
  • Free has hard limits. When a region’s monthly requests or compute units run out, calls answer 402 (and scheduled runs are skipped) until the next month. Upgrade in Billing to keep going.
  • Paid plans, and Pay as you go while you have credit, keep running past the included amounts. Extra usage is billed at $0.10 per million requests and $5 per million compute units.
  • Monthly totals reset at the start of each calendar month (UTC). The Hive Functions page in the console shows your usage.

A compute unit measures the work your code does during a run: the instructions it executes, the data it reads and writes, and its built-in calls. A single run can use up to 1 compute unit; most handlers use a small fraction of that.

A run that reaches the limit stops and answers 500 with {"error": "compute_limit"}.

Limit
Time per run 30 seconds by default; set from 0.1 to 30 seconds in Settings > Timeout
Request body 6 MB
Response 9 MB as returned by your handler; binary bodies are base64, so about 6 MB of binary data
Outbound HTTP 50 requests per run, 10 seconds and 6 MB each way per request (rules)
Environment variables 4 KB in total
Secrets 100 per function, 32 KB each
Schedules 10 per function, at least 1 minute apart, 4 KB of input each
Versions kept The last 10, for rollback
Logs kept The last 500 entries per function
Builds 5 minutes; up to 20 MB of source and 20 MB of Hive Bytecode

Each function accepts up to 100 requests a second, with short bursts up to 200. On the Free plan, each client IP address can also make up to 50 requests a second. Requests over the limit get 429 with Retry-After: 1. Need more for a function? Contact support.

Status Body Meaning
500 {"error": "function_error", "message": "..."} Your code threw or returned an error. The message comes from your code (up to 1 KB).
500 {"error": "compute_limit"} The run used its full compute allowance.
504 {"error": "timeout", "message": "..."} The run didn’t finish within the function’s time limit.
402 {"error": "plan_limit"} The account reached its monthly Free plan allowance in this region.
429 {"error": "rate_limited"} Too many requests; retry after a second.
403 {"error": "suspended"} The account that owns the function is suspended.
404 A “Function not found” page No function has this name.

Errors also appear in the function’s Logs.