Errors
The errors below are specific to TagoSQL queries. Standard API errors (authentication, rate limiting, per-endpoint status codes) behave as they do everywhere else; see the TagoIO API reference.
Query problems (400)
Fix the query or the request:
| Trigger | Example message |
|---|---|
| SQL syntax error or disallowed construct | Invalid query |
| Inactive query executed | SQL query is inactive |
Written LIMIT above the plan row cap | LIMIT exceeds the plan row cap (100). Lower it and paginate with OFFSET |
Result exceeds the row cap (query had no LIMIT) | Result exceeds the 100-row limit. Add LIMIT (and OFFSET to paginate) |
Missing, extra, duplicate, or gapped $n parameter | Message naming the $n token |
| Parameter value invalid for how the query uses it | Invalid value for parameter $1 |
| Fleet query without the required filters | device_data_by_tag requires a variable = '<name>' filter |
| Fleet time bound older than the plan window | time bound exceeds the 90-day window allowed on your plan |
| Fleet tag filter matching too many devices | Tag filter matches more than 100 devices. Narrow the tags or paginate with after_device |
Plan limits (402)
Raised by upgrading the plan (or lowering usage): the stored-query cap, the per-query parameter cap, JOINs
on the Free plan (JOINs require a Starter plan or above), too many joined tables, and an exhausted monthly
data output allocation.
Not found (404)
| Trigger | Example message |
|---|---|
| Query id not on your profile (including someone else's) | SQL Query can't be found |
| Version not in the query's history | 404 |
| Device or entity not owned or nonexistent | Device 'x' not found |
| Device exists but has never stored data | Device 'x' has no data |
| Fleet tag filter matching no device | No device found with tag |
Ownership failures are always 404, never 403: a resource you cannot access is indistinguishable from one
that does not exist.
Timeout (408)
The query exceeded your plan's execution timeout: Query timed out (15s limit). Narrow the time range, add
tighter filters, or reduce the number of joined tables.
Something missing from this page?