Issue #119533 is the misleading "No LLM provider configured" when the
primary's credential pool is burned. The refusal WARNING only fired when
fallback entries existed and never said why the primary failed, so the
reporter's trigger with no ladder configured still left no trace.
resolve_provider_client returns a bare (None, None), but the pool state
is a cheap local read: ask load_pool(primary) whether it has credentials
yet none available, include "credential pool exhausted" in the WARNING,
and emit it even with no fallback entries. A pool-less, ladder-less
primary (genuine first-run) stays silent to avoid duplicating the raise.
The explicit-provider test duplicated the refused-ladder test except
for the primary slug, and its startswith() check pinned old log
wording rather than behaviour. Parametrize the refused-ladder test over
an openrouter and an anthropic primary (each asserting its own raise)
and keep the recovered-ladder negative control.
Drop the per-test HERMES_HOME setenv and tmp_path params: conftest
already isolates HERMES_HOME per test and the path never reads it.
The explicit-provider branch raises missing_provider_credentials_message,
not the generic 'No LLM provider configured' error, so the WARNING that
summarises refused fallback entries must not assert that verdict. Pin it
with a test on the explicit-provider path.
Refs #119533