This list is hierarchical, that means the in case of multiple error conditions, top topmost errors take precedence.
| Status | Description | Type | Name |
|---|---|---|---|
| Unauthorized | Token refresh has failed, no access to API, most likely 401 response codes | Integration | ERROR_UNAUTHORIZED |
| OEM internal error | No data due to internal OEM error. (500-series responses) | Vehicle | ERROR_INTERNAL_ERROR |
| No devices | OEM API returns empty device list. | Integration | ERROR_NO_DEVICES |
| Insufficient scope | Access is valid, but limited to subset of data and or commands. User intervention needed. Also includes expired data subscriptions. | Integration | ERROR_INSUFFICIENT_SCOPE |
| Rate limit | API is rate limited temporarily from OEM side, most likely 429 response codes, 403 also possible. | Integration/Vehicle | ERROR_RATE_LIMIT |
| No data | Requests are yielding empty responses, could be unique to the vehicle. Not necessarily 500 style internal server error from the OEM. (Albeit similar) | Vehicle | ERROR_NO_DATA |
| Old data | Our last known data point from the device is more than 96 hours old. That is, there is possibly a device data access issue or something similar. | Vehicle | ERROR_OLD_DATA |
| Start not working | Start commands are returning error from OEM. Does not include (yet) the condition, where command is accepted but not executed. Status will remain this until first good start command. | Vehicle | ERROR_START_FAIL |
| Stop not working | Stop commands are returning error from OEM. Does not include (yet) the condition, where command is accepted but not executed. Status will remain this until first good stop command. | Vehicle | ERROR_STOP_FAIL |
| Schedule not working | Schedule commands are returning error from OEM. Does not include (yet) the condition, where command is accepted but not executed. Status will remain this until first good schedule command. | Vehicle | ERROR_SCHEDULE_FAIL |
| OK | No error, situation normal. | Integration/Vehicle | OK |