Errors

What the SDK throws, and what to do about it.

The SDK throws one of three exceptions, all implementing Goomzo\Exception\GoomzoException. The API's own codes are listed in Errors.

ExceptionWhen
ApiExceptionThe API answered with an error.
ConnectionExceptionNo answer came: the network failed, or it took too long.
WebhookVerificationExceptionA webhook's signature or timestamp didn't check out.

Handle an error

use Goomzo\Exception\ApiException;

try {
    $goomzo->messages->sendOne(['to' => '0712345678', 'channel' => 'sms', 'content' => ['text' => 'Hi']]);
} catch (ApiException $error) {
    if ($error->errorCode === 'invalid') {
        print_r($error->fields); // ['messages[0].to' => ['code' => 'invalid', 'message' => 'Add the country code…']]
    }
    throw $error;
}
PropertyDescription
statusint. The HTTP status, such as 400.
errorCodestring. What went wrong, such as invalid, not_found or insufficient_sms.
getMessage()string. What the API said, in words.
fieldsarray. The fields that were wrong, by where they are, such as customers[1].phone.
requestIdstring. The request's id. Include it when you contact Goomzo.

ConnectionException has timedOut, true when the request took longer than the timeout.

Retries

Network errors, 429 and 5xx are tried again before anything is thrown, 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