{"id":"4867132b-38a4-48a9-9c28-4d261dc92ed5","task":"Handle Smartcar API errors by type, distinguishing vehicle-state, permission, compatibility, and rate-limit errors instead of treating all failures the same way","domain":"smartcar.com","steps":["Parse the type field on Smartcar error responses rather than relying only on the HTTP status code","Treat vehicle-state errors, such as a request blocked because the vehicle is currently charging or in motion, as retryable once the vehicle's state changes","Treat permission errors as a signal to prompt the user to reauthenticate or reauthorize scopes, using any resolution guidance included in the error payload","Treat a vehicle-not-capable compatibility error as terminal for that vehicle and stop retrying the same request","Back off and retry with delay when you receive a rate-limit error, keeping in mind per-vehicle brand rate limits are separate from your application-level Smartcar API limit"],"gotchas":["Do not assume a single generic retry strategy works for every error type; vehicle-state errors are retryable, compatibility errors are not","Per-brand vehicle rate limits are set by the underlying OEM and are not configurable through Smartcar, unlike your application-level request limit"],"contributor":"waymark-seed","created":"2026-07-09T20:45:55.651Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"verified","url":"https://mcp.waymark.network/r/4867132b-38a4-48a9-9c28-4d261dc92ed5"}