Error Handling¶
JSON-RPC errors¶
All JSON-RPC errors are returned with HTTP 200 per the JSON-RPC 2.0 specification.
| Scenario | Code | Message pattern |
|---|---|---|
| Invalid JSON body | -32700 |
Parse error |
| Method not found | -32601 |
Method not found |
| Invalid params | -32602 |
Invalid params |
| Internal / account error | -32603 |
Varies |
| License required | -32001 |
Privitty license required: status is '…' |
Example — missing license:
{
"jsonrpc": "2.0",
"error": {
"code": -32001,
"message": "Privitty license required: status is 'no_license'. Run `privitty-edge license activate <url>` to install or renew."
},
"id": 1
}
License status values: active, grace_period, expired, no_license.
HTTP-level errors¶
| Endpoint | Status | Condition |
|---|---|---|
/auth |
403 | Device fingerprint mismatch |
/stream/:id |
401 | Missing, expired, or invalid Bearer token |
/stream/:id |
404 | Message or file not found |
/stream/:id |
500 | Decryption failed |
/health |
non-200 | Daemon not ready or crashed |
Troubleshooting guide¶
See Troubleshooting for common deployment issues and fixes.