influxdata/influxdb · error · Error

lost HTTP/gRPC service

Error message

lost HTTP/gRPC service

What it means

Display message of the `Error::LostHttpGrpc` variant, a source-less error indicating the HTTP/gRPC service handle was dropped or its service task ended while the serve command still expected it to be running. Like LostBackend, it signals an unexpected service teardown.

Solutions

  1. Look earlier in logs for the real cause (panic or listener error inside the HTTP/gRPC task)
  2. Confirm the bind addresses are still valid and not reclaimed by another process
  3. Reproduce with debug logging and file an issue with the version and logs
  4. Upgrade influxdb3 in case the premature-teardown bug is fixed upstream
Defensive patterns

Strategy: try-catch

Try / catch

match serve_result {
    Err(Error::LostHttpGrpc) => eprintln!("HTTP/gRPC service terminated unexpectedly; check listener errors/panics"),
    ...
}

Prevention

When it happens

Trigger: The HTTP/gRPC service future completes early (crash, panic, bind failure inside the task) and the serve command detects the service is gone while awaiting completion.

Common situations: Service task panics on a request, the listener closes unexpectedly, or shutdown ordering issues cause the service to terminate before the process finishes.

Understand the failure class

Background: "This is a bug, please report it": internal invariant violations, unreachable panics, and SNH errors explained — this error's family across 47 libraries.

Related errors


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

Appendix: source

Thrown at influxdb3/src/commands/serve.rs:156

    #[error("invalid token: {0}")]
    InvalidToken(#[from] hex::FromHexError),

    #[error("failed to initialize write buffer: {0:?}")]
    WriteBufferInit(#[source] anyhow::Error),

    #[error("failed to initialize catalog: {0}")]
    InitializeCatalog(#[source] CatalogError),

    #[error("failed to initialize last cache: {0}")]
    InitializeLastCache(#[source] last_cache::Error),

    #[error("failed to initialize distinct cache: {0:#}")]
    InitializeDistinctCache(#[source] influxdb3_cache::distinct_cache::ProviderError),

    #[error("lost backend")]
    LostBackend,

    #[error("lost HTTP/gRPC service")]
    LostHttpGrpc,

    #[error("lost admin token recovery service")]
    LostAdminTokenRecovery,

    #[error("tls requires both a cert and a key file to be passed in to work")]
    NoCertOrKeyFile,

    #[error("table cache index initialization failed: {0}")]
    TableIndexCacheInitialization(
        #[source] influxdb3_write::table_index_cache::TableIndexCacheError,
    ),

    #[error(
        "environment variable {0} (named by --node-id-from-env / INFLUXDB3_NODE_ID_FROM_ENV) \
        must be set to a valid node id"
    )]
    NodeIdEnvVarMissing(String),

View on GitHub (pinned to 06200ef96b)