EpicGames/lore · error · anyhow::Error

Cannot configure gRPC internal server, no local store

Error message

Cannot configure gRPC internal server, no local store

What it means

Thrown by launch_grpc_internal_server when local_store() returns None at builder time. GrpcInternalServerBuilder.with_components requires a concrete local store as its first component; without one the internal server cannot be assembled and startup fails.

Solutions

  1. Ensure the local store is configured and initialized before launch_grpc_internal_server is invoked.
  2. Check that store configuration (e.g. configure_immutable_store_via_plugin / mutable store setup) succeeded earlier in startup.
  3. Review startup ordering so store wiring happens before internal gRPC server launch.

Example fix

// before
let local = local_store(); // None, store never configured

// after
configure_local_store(&settings).await?; // initialize first
let local = local_store().ok_or_else(|| anyhow!("Cannot configure gRPC internal server, no local store"))?;
Defensive patterns

Strategy: try-catch

Validate before calling

let local = local_store().ok_or_else(|| anyhow!("no local store configured; cannot start internal gRPC server"))?;

Try / catch

match launch_grpc_internal_server(...) {
    Err(e) if e.to_string().contains("no local store") => {
        eprintln!("store initialization failed or was skipped; fix store config/order: {e}");
    }
    other => other?,
}

Prevention

When it happens

Trigger: launch_grpc_internal_server runs after store configuration but the local store was never initialized/registered (local_store() yields None) when building the internal gRPC server.

Common situations: Store configuration failed earlier or was skipped (e.g. remote-only store mode) so no local store exists; initialization ordering bug where the internal server starts before stores are set up.

Understand the failure class

Background: "not installed", "pip install", "required for": how missing-dependency errors surface across open-source libraries — this error's family across 34 libraries.

Related errors


AI-assisted analysis of EpicGames/lore@074eb0b0d1 (2026-09-13). Data as JSON: /api/errors/279123869cda5dd6. Report an issue: GitHub.

Appendix: source

Thrown at lore-server/src/server.rs:616

    info!("Starting Lore gRPC internal server: {}", &addr);

    let (cert_path, key_path, cert_chain_path) =
        if let Some(cert_settings) = grpc_settings.certificate {
            (
                Some(cert_settings.cert_file),
                Some(cert_settings.pkey_file),
                cert_settings.cert_chain,
            )
        } else {
            (None, None, None)
        };

    let rpc_timeout = Duration::from_secs(grpc_settings.request_handler_timeout_seconds);

    GrpcInternalServerBuilder::new()
        .with_components(
            local_store().ok_or(anyhow!(
                "Cannot configure gRPC internal server, no local store"
            ))?,
            immutable_store,
            mutable_store,
            notification_sender,
            hook_dispatcher,
            settings.environment.clone().unwrap_or_default(),
        )?
        .with_tls_config(cert_path, key_path, cert_chain_path)?
        .with_http2_config(
            grpc_settings
                .http2_keepalive_interval_seconds
                .map(Duration::from_secs),
            grpc_settings
                .http2_keepalive_timeout_seconds
                .map(Duration::from_secs),
            user_agent_filter,
            rpc_timeout,

View on GitHub (pinned to 074eb0b0d1)