Every error is {"error": {"code", "message", "request_id"}}. Branch on code,
not on the message, and quote request_id when you contact support.
| Code | Status | Meaning |
MISSING_API_KEY | 401 | No Authorization: Bearer header was sent |
INVALID_API_KEY | 401 | The API key is not valid |
API_KEY_EXPIRED | 401 | The API key has expired |
CUSTOMER_SUSPENDED | 403 | The account is suspended |
VALIDATION_ERROR | 422 | A required field is missing or has the wrong type; see details |
RATE_LIMIT_EXCEEDED | 429 | Too many requests; wait Retry-After seconds |
INVALID_REQUEST | 400 | The simulation service rejected the request, e.g. a bad version or file |
SIMX_DECRYPT_FAILED | 400 | The .simx file could not be decrypted |
SIMX_KEYS_UNAVAILABLE | 502 | The .simx decryption keys could not be loaded; retry later |
FILE_UNREADABLE | 400 | The building file could not be read |
PARAMETERS_INVALID | 400 | The simulatable-parameters document is not valid JSON or has no source.sha256 |
PARAMETERS_WRONG_BUILDING | 400 | The simulatable-parameters document was made from a different building |
PARAMETERS_REJECTED | 400 | One or more changes cannot be applied; see message.problems |
SIMULATION_REJECTED | 400 | The simulation engine rejected the file or settings, e.g. an unknown location |
SXO_UNREADABLE | 400 | The uploaded file could not be read as a SIMIEN .sxo result |
FILE_TOO_LARGE | 413 | The uploaded file is larger than the size limit |
ALL_SIMULATIONS_FAILED | 502 | Every simulation in simulate-all failed |
SIMULATION_TIMEOUT | 504 | The simulation engine did not respond in time; retry later |
SIMULATION_SERVICE_UNAVAILABLE | 502 | The simulation engine is unavailable; retry later |
UPSTREAM_UNAVAILABLE | 502 | The simulation service could not be reached; retry later |
UPSTREAM_ERROR | 502 | The simulation service failed; retry later |
UPSTREAM_AUTH_FAILED | 502 | The gateway could not authenticate with the simulation service; contact us |
INTERNAL_ERROR | 500 | Unexpected error; contact us with the request_id |