check() filters the pool at start, but a host can vanish afterwards
(rig.local stopped resolving during the 2026-09-22 CMS-2026-2377
re-index; same on 2026-09-04) and embed_texts let the first transport
error abort the whole run. Now an httpx.TransportError drops that host
(HostPool.drop) and the batch is retried elsewhere; only when no host
is left does a RuntimeError name the last failure. acquire() and
acquire_generation() on an empty pool raise the same clear error
instead of min()/max()'s ValueError. HTTP error responses still raise
through raise_for_status — that is a model/config problem, not a dead
host.