When This Event Fires
TheVEHICLE_ERROR event fires when:
- Smartcar detects an error while retrieving signal data
- The vehicle manufacturer’s API returns an error
- The vehicle is offline or unreachable
- Authentication, permission, or compatibility errors occur
Resolution notifications: When an error condition is resolved (e.g., vehicle comes back online), Smartcar sends another
VEHICLE_ERROR event with state set to "RESOLVED". This enables automatic recovery workflows.Error Categories
Errors are categorized by type and include specific error codes:Connected Services Account Errors
Connected Services Account Errors
Issues with the user’s account with the vehicle manufacturer.
| Type | Code | Description |
|---|---|---|
CONNECTED_SERVICES_ACCOUNT | ACCOUNT_ISSUE | General account problem |
CONNECTED_SERVICES_ACCOUNT | AUTHENTICATION_FAILED | Authentication credentials are invalid |
CONNECTED_SERVICES_ACCOUNT | PERMISSION | User lacks necessary permissions |
CONNECTED_SERVICES_ACCOUNT | SUBSCRIPTION | Required subscription is inactive or expired |
CONNECTED_SERVICES_ACCOUNT | VIRTUAL_KEY_REQUIRED | Vehicle requires a virtual key to be configured |
Vehicle State Errors
Vehicle State Errors
Issues with the vehicle’s connectivity or state.
| Type | Code | Description |
|---|---|---|
VEHICLE_STATE | REMOTE_ACCESS_DISABLED | Remote access is disabled on the vehicle |
VEHICLE_STATE | ASLEEP | Vehicle is in sleep mode |
VEHICLE_STATE | UNREACHABLE | Vehicle is not connected to the internet |
Compatibility Errors
Compatibility Errors
Issues with signal availability for the specific vehicle.
| Type | Code | Description |
|---|---|---|
COMPATIBILITY | MAKE_NOT_COMPATIBLE | Vehicle manufacturer doesn’t support this signal |
COMPATIBILITY | SMARTCAR_NOT_CAPABLE | Smartcar cannot retrieve this signal yet |
COMPATIBILITY | VEHICLE_NOT_CAPABLE | This specific vehicle doesn’t support the signal |
Permission Errors
Permission Errors
Issues with granted permissions.
| Type | Code | Description |
|---|---|---|
PERMISSION | null | Required permission not granted by user |
Payload Structure
Unique identifier for this event. Use this for idempotency to prevent duplicate processing.
Always
"VEHICLE_ERROR" for this event type.Smartcar vehicle ID for the vehicle this event relates to.
Container for event data.
Webhook delivery metadata. See Event Reference Overview for complete
meta object schema.Example Payloads
- Error State
- Resolved State
Delivered when an error occurs.
Common Error Scenarios
| Scenario | Type | Code | Recommended Action |
|---|---|---|---|
| Vehicle offline | VEHICLE_STATE | UNREACHABLE | Retry later; notify user if persistent |
| User revoked permissions | CONNECTED_SERVICES_ACCOUNT | PERMISSION | Prompt user to re-authenticate |
| Connected services subscription expired | CONNECTED_SERVICES_ACCOUNT | SUBSCRIPTION | Direct user to renew manufacturer subscription |
| Signal not supported | COMPATIBILITY | VEHICLE_NOT_CAPABLE | Remove signal from webhook or handle gracefully |
| Vehicle asleep | VEHICLE_STATE | ASLEEP | Retry later; avoid waking vehicle unnecessarily |
Processing VEHICLE_ERROR Events
Basic Handler
Best Practices
Track error state changes
Track error state changes
Monitor both
ERROR and RESOLVED states to implement automatic recovery workflows.Use suggestedUserMessage for notifications
Use suggestedUserMessage for notifications
Display the user-friendly message to vehicle owners instead of technical error descriptions.
Implement retry logic for transient errors
Implement retry logic for transient errors
Some errors (ASLEEP, UNREACHABLE) are transient. Implement exponential backoff retries.
Handle multiple simultaneous errors
Handle multiple simultaneous errors
A single
VEHICLE_ERROR event can contain multiple errors affecting different signals.Degrade gracefully in your UI
Degrade gracefully in your UI
When errors occur, show stale data with a clear indication that it’s not current.
Error Resolution Tracking
When an error condition is resolved, Smartcar sends aVEHICLE_ERROR event with state: "RESOLVED":

