ProviderRefusedException
The model's endpoint answered with an HTTP error status — the provider SPEAKING, not the wire failing. Its message is the `"$provider API Error: HTTP …"` text callers already read, byte for byte; the type adds what that text buried: the status and the endpoint that answered it (as {@see ProviderEndpoint::shown()} spells it, so no credential travels). {@see AgentOrchestrator} carries both into the run's termination, so a turn that died on its endpoint says so on the panel instead of ending as a bare `failed` (greenhouse evidence/1069 §C1).
ProviderRefusedException::__construct()
public function __construct(string $message, int $status, string $endpoint, ?Throwable $previous = null):Parameters
| Name | Type | Description |
|---|---|---|
| $message | string | the provider-prefixed message callers already read |
| $status | int | the HTTP status the endpoint answered |
| $endpoint | string | the endpoint that answered it, already shown without credentials |
| $previous | (\Throwable | null) | what caused it, when something did |