convertGuzzleRequestException($exception); } if ($exception instanceof NetworkExceptionInterface) { return new ApiConnectionFailed('Unable to connect to the API: '.$exception->getMessage(), $exception->getCode(), $exception); } return new AppCheckError($exception->getMessage(), $exception->getCode(), $exception); } private function convertGuzzleRequestException(RequestException $e): AppCheckException { $message = $e->getMessage(); $code = $e->getCode(); $response = $e->getResponse(); if ($response !== null) { $message = $this->responseParser->getErrorReasonFromResponse($response); $code = $response->getStatusCode(); } return match ($code) { StatusCode::STATUS_UNAUTHORIZED, StatusCode::STATUS_FORBIDDEN => new PermissionDenied($message, $code, $e), default => new AppCheckError($message, $code, $e), }; } }