401 Unauthorized |
Missing or wrong token |
Send Authorization: Bearer <token> with the current token |
404 Not found |
Wrong path |
Use /mcp for MCP or /api/<tool> for REST |
405 Use POST |
REST call with GET |
REST endpoints are POST-only |
Unsupported Media Type |
Missing headers |
Send Content-Type: application/json and Accept: application/json, text/event-stream |
relation "device" does not exist |
Unquoted PascalCase name |
Use "Device" |
canceling statement due to statement timeout |
Query ran over 15 s |
Add filters or LIMIT, or aggregate |
truncated: true |
More than 500 rows |
Aggregate or page with LIMIT/OFFSET |
password authentication failed |
Database password rotated |
Update Hyperdrive |
| Stale results |
Hyperdrive cache |
Wait about 60 s, or disable caching |
| A valid query is rejected |
Blocked keyword such as set or lock used as a name |
Quote the identifier |
| OAuth: “Wrong access key” on the Authorize page |
Pasted the wrong key |
Use the value of MCP_AUTH_TOKEN from .secrets |
OAuth: invalid_target / “resource parameter must name exactly one configured protected resource” |
Client configured with a URL other than /mcp |
Use https://mcp.911cpb.org/mcp exactly |
OAuth token gets 401 on /api/* |
REST only accepts the access key |
Use X-API-Key for REST |