{ "code": "...", "error": "..." }. Branch on code, which is a stable category; the error text is for humans and may change. Responses from an intermediary, such as a proxy or gateway, can have a different shape, so check the HTTP status first.
Error codes
Recovery by symptom
Do not turn a failed executable quote into a signable transaction by ignoring simulation errors. Pricing without a sender is useful for an estimate, not proof that the route can execute.

