influxdata/influxdb · error · Error

io error

Error message

io error: {0}

What it means

This variant wraps std::io::Error for I/O failures inside the HTTP server request path. It fires when reading request bodies, writing responses, or touching local resources fails at the OS level. The inner message identifies the exact operation (e.g. read ECONNRESET, broken pipe).

Solutions

  1. Check the inner io message for the failing operation and OS error code (e.g. ECONNRESET, EPIPE).
  2. Increase client/proxy timeouts and use chunked uploads for large writes.
  3. Retry the request from the client; these are usually transient connection issues.
  4. If it involves local files, verify permissions and free disk space on the server host.
Defensive patterns

Strategy: retry

Try / catch

try { await write(points); } catch (e) { if (e.message.startsWith('io error: ')) await backoffRetry(write, points, 3); else throw e; }

Prevention

When it happens

Trigger: A client disconnects mid-upload while the server reads a write body; a socket write fails when streaming a response; local file access (e.g. serving debug endpoints) hits a permission or missing-file error.

Common situations: Clients with short HTTP timeouts dropping connections during large line-protocol writes; load balancers cutting idle connections; disk-full or permission problems on hosts serving local files.

Related errors


AI-assisted analysis of influxdata/influxdb@06200ef96b (2026-09-19). Data as JSON: /api/errors/4880acdc4774d67a. Report an issue: GitHub.

Appendix: source

Thrown at influxdb3_server/src/http.rs:317

    #[error("persister error: {0}")]
    Persister(#[from] influxdb3_write::persister::PersisterError),

    // ToStrError
    #[error("to str error: {0}")]
    ToStr(#[from] hyper::header::ToStrError),

    // SerdeJsonError
    #[error("serde json error: {0}")]
    SerdeJson(#[from] serde_json::Error),

    // Influxdb3 Write
    #[error("serde json error: {0}")]
    Influxdb3Write(#[from] influxdb3_write::Error),

    #[error("datafusion error: {0}")]
    Datafusion(#[from] DataFusionError),

    #[error("io error: {0}")]
    Io(#[from] std::io::Error),

    #[error("query error: {0}")]
    Query(#[from] QueryExecutorError),

    #[error(transparent)]
    DbName(#[from] ValidateDbNameError),

    #[error("partial write of line protocol occurred")]
    PartialLpWrite(BufferedWriteRequest),

    #[error("error in InfluxQL statement: {0}")]
    InfluxqlRewrite(#[from] rewrite::Error),

    #[error("must provide only one InfluxQl statement per query")]
    InfluxqlSingleStatement,

    #[error("must specify a 'db' parameter, or provide the database in the InfluxQL query")]

View on GitHub (pinned to 06200ef96b)