Every fetch goes through one of EliseBot’s proxies; EliseBot never connects to a target itself, and a request cannot choose or bring a proxy.
- The proxy is picked per attempt from the pool, so a retry may go out another way.
- The proxy resolves the target, so EliseBot refuses what it can see before the request leaves, on every redirect hop:
a non-public IP literal,
localhostor*.localhostfails withnon_public_address, and an explicit port other than 80 and 443 withport_not_allowed. - A proxy that is unreachable, refuses the connection or the credentials (407) or fails the CONNECT is retried like
any failure, then ends as
proxy_error, with the fixederrorproxy connection failedthat never names the proxy’s address or banner. A 429 or 5xx, the target’s or an HTTP proxy’s on a plain-http target, stayshttp_statusand is retried as usual.