Status codes, errors, and scope matrix·View as Markdown

Errors & scopes

Status codes

CodeMeaning
400Bad request (missing fields, invalid estimate token, protocol unsupported)
401Missing / invalid Bearer token
403Insufficient scope, workspace mismatch, bucket not allowed, feature disabled
404Not found — or dogfood gate (intentionally opaque)
502Upstream job kick failed (e.g. Trigger drain)

Error body is usually JSON: { "error": "...", "required"?: ... }.

Cloudflare 1010 is not an app status code. Bot Fight Mode blocked the HTTP client before file.rocks. Agents must use MCP complete_upload, not REST upload-complete.

Scope matrix

ScopeUsed for
workspaces:readList/get workspaces
buckets:readList/get buckets
buckets:writeCreate/patch buckets
buckets:deleteDelete buckets
files:readList, get, search, similar (index only — not a live bucket listing)
files:writePatch tags/description, mkdir, move. Does not register uploads
files:deleteSoft-delete files
files:uploadpresign_upload + complete_upload (or REST presign + upload-complete). Upload + read is enough
files:downloadpresign_view (inline) and presign_download (attachment). preview 1h / embed 7d. Durable view URL only when publicDomain / file.url
intelligence:readGet intelligence config/progress
intelligence:writePatch config, backfill
agent:runBucket agent
automations:read / automations:writeAutomations & Trash settings
suggestions:read / suggestions:writeCleanup suggestions
shares:read / shares:writeShares
transfers:read / transfers:writeTransfers

MCP tools enforce the same scopes — see MCP tools. Upload steps: Upload flow.

Errors & scopes · file.rocks docs