Limits
Measured platform limits: per-user mission rate limits, timeouts, retries, and pause behaviour.
All values below are live configuration defaults read from
backend/backend/app/config.py — not folklore.
Mission rate limits (per user)
| Action | Requests per 60 s window |
|---|---|
| Create mission | 30 (MISSION_RATE_LIMIT_CREATE, config.py:300) |
| Update mission | 30 (config.py:301) |
| Delete mission | 15 (config.py:302) |
| Execute mission | 20 (config.py:303) |
| Abort mission | 15 (config.py:304) |
| Plan | 20 (config.py:305) |
| Default (unlisted actions) | 60 (config.py:311) |
Window = 60 seconds (MISSION_RATE_LIMIT_WINDOW_SECONDS, config.py:312);
short bursts up to 2× the listed rate are absorbed
(MISSION_RATE_LIMIT_BURST_MULTIPLIER, config.py:313).
Timeouts & retries
- LLM request timeout: 60 s (
MISSION_LLM_REQUEST_TIMEOUT, config.py:298) - Default self-correction retries per mission: 3
(
MISSION_DEFAULT_MAX_RETRIES, config.py:297) - Planning call budget: 2 000 max tokens (
MISSION_PLAN_MAX_TOKENS, config.py:296)
Pause behaviour
A mission paused longer than 7 days is auto-transitioned to failed and
compensation runs (MISSION_PAUSE_AUTO_FAIL_DAYS, config.py:311-313 region;
task: app/tasks/expire_paused_missions.py).
Last updated 2026-08-25 (git-derived)