Skip to content
docsv0.42.1

TransportRetryExhaustedException

Both transport attempts for one chat-completions POST failed — the original try and the single retry {@see LlmService} allows for a transient wire failure (connection refused or reset, timeout, DNS). Its message already carries the `"$provider API Error: ..."` prefix callers expect AND names that two attempts were made, so the catch blocks that re-wrap other throwables must let this one through untouched — wrapping it again would stutter the prefix and bury the attempt count. An HTTP response of any status never becomes this exception: a 4xx/5xx is the provider speaking, not the wire failing, and surfaces exactly as before.

TransportRetryExhaustedException::__construct()

public function __construct(string $message = '', int $code = 0, ?Throwable $previous = null, ?string $endpoint = null):

Parameters

Parameters of __construct()
NameTypeDescription
$messagestringthe provider-prefixed message naming both attempts
$codeintunused, kept for the base signature
$previous(\Throwable | null)the second attempt's failure
$endpoint(string | null)the endpoint neither attempt reached, shown without credentials ({@see ProviderEndpoint::shown()}) — null from a caller that did not say