Remote `create_table` reader uploads can exceed the read deadline while waiting for response headers, but reqwest's main error message only says "error sending request". Make HTTP and retry errors explicitly identify timeouts and name the relevant `client_config.timeout_config` settings and environment variables, preserving typed sources, request metadata, and retry classification. Document that the read timeout covers waiting for headers during upload. This implements the issue's diagnostic option: creation still uses one streaming request, so large or slow readers may require a longer `client_config.timeout_config.read_timeout`. Validation: - 48 focused Rust client, error, and retry tests passed. Regression coverage holds an upload open until its read timeout and also exercises TLS connection timeouts, with and without retries. - 8 Python create-table and HTTP/retry error tests passed in the uv-managed environment after rebuilding the extension, including reader creation with read and overall timeouts. - `cargo check --quiet --features remote --tests --examples` passed. - `cargo clippy --quiet --features remote --tests --examples` passed. - Rust formatting and Python package Ruff lint/format checks passed. - Repository-wide `ruff check .` reports 49 existing findings under `docs/web-tests`; those files are unchanged. Fixes #4646 <!-- lance-gatekeeper-fix:v1 agent=ce1c040fa581f1748166ecb686d9c9c0 generation=1 --> --------- Co-authored-by: Gatefixer <313497061+lancedb-gatefixer[bot]@users.noreply.github.com> Co-authored-by: Xuanwo <github@xuanwo.io>
1.6 KiB
@lancedb/lancedb • Docs
@lancedb/lancedb / TimeoutConfig
Interface: TimeoutConfig
Timeout configuration for remote HTTP client.
Properties
connectTimeout?
optional connectTimeout: number;
The timeout for establishing a connection in seconds. Default is 120
seconds (2 minutes). This can also be set via the environment variable
LANCE_CLIENT_CONNECT_TIMEOUT, as an integer number of seconds.
poolIdleTimeout?
optional poolIdleTimeout: number;
The timeout for keeping idle connections in the connection pool in seconds.
Default is 300 seconds (5 minutes). This can also be set via the
environment variable LANCE_CLIENT_CONNECTION_TIMEOUT, as an integer
number of seconds.
readTimeout?
optional readTimeout: number;
The timeout for reading data from the server in seconds. Default is 300
seconds (5 minutes). This can also be set via the environment variable
LANCE_CLIENT_READ_TIMEOUT, as an integer number of seconds.
This also applies while waiting for response headers during an upload. A large or slowly produced request body (for example, when creating a table) may need a longer timeout even if data is still being uploaded.
timeout?
optional timeout: number;
The overall timeout for the entire request in seconds. This includes
connection, send, and read time. If the entire request doesn't complete
within this time, it will fail. Default is None (no overall timeout).
This can also be set via the environment variable LANCE_CLIENT_TIMEOUT,
as an integer number of seconds.