Limits and regions
Function URLs
Section titled “Function URLs”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.
Regions
Section titled “Regions”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 |
Plan allowances
Section titled “Plan allowances”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.
Compute units
Section titled “Compute units”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"}.
Time and size
Section titled “Time and size”| 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 |
Rate limits
Section titled “Rate limits”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.
Errors
Section titled “Errors”| 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.