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
- Ensure the local store is configured and initialized before launch_grpc_internal_server is invoked.
- Check that store configuration (e.g. configure_immutable_store_via_plugin / mutable store setup) succeeded earlier in startup.
- 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
- Initialize and register the local store before launching any gRPC servers.
- Fail fast on store-configuration errors so later stages never run half-wired.
- Enforce a linear startup order: settings -> stores -> servers.
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
- TLS is partially configured: cert_file and pkey_file must…
- Missing gRPC settings
- Missing gRPC internal settings
- Missing local immutable store settings
- Missing composite store settings
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)