Errors
What the SDK raises, and what to do about it.
The SDK raises one of three errors. The API's own codes are listed in Errors.
| Error | When |
|---|---|
GoomzoError | The API answered with an error. |
GoomzoConnectionError | No answer came: the network failed, or it took too long. |
WebhookVerificationError | A webhook's signature or timestamp didn't check out. |
Handle an error
from goomzo import GoomzoError
try:
goomzo.messages.send_one({'to': '0712345678', 'channel': 'sms', 'content': {'text': 'Hi'}})
except GoomzoError as error:
if error.code == 'invalid':
print(error.fields) # {'messages[0].to': {'code': 'invalid', 'message': 'Add the country code…'}}
raise| Attribute | Description |
|---|---|
status | int. The HTTP status, such as 400. |
code | str. What went wrong, such as invalid, not_found or insufficient_sms. |
message | str. What the API said, in words. |
fields | dict. The fields that were wrong, by where they are, such as customers[1].phone. |
request_id | str. The request's id. Include it when you contact Goomzo. |
GoomzoConnectionError has timed_out, True when the request took longer than the timeout.
Retries
Network errors, 429 and 5xx are tried again before anything is raised, twice by default, waiting as long as
the API asks. Every POST carries the same Idempotency-Key on each try, so nothing is done twice.
Next steps
Last updated