The async client uses a pool of non-blocking http client connections, implemented by org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager, which applies a timeout option for the pending requests to the pool. This is not to be confused with pending requests to the remote server. For some reason the expiration of the org.apache.http.nio.pool.LeaseRequest was being checked also after the request had been successfully performed, ultimately causing the request to be flagged as failed with an exception of type TimeoutException on our side, even while the request had been processed successfully on the ES server. |