EpicGames/lore · error · anyhow::Error
Missing local immutable store settings
Error message
Missing local immutable store settings
What it means
Thrown by configure_immutable_store_via_plugin when the immutable store mode is "local" but settings.immutable_store.local is None. The local mode requires its dedicated settings block to construct the store; the absent section aborts configuration.
Solutions
- Add an [immutable_store.local] section with the required local store options (e.g. path/data_dir).
- Fix the subsection key spelling so it deserializes into settings.immutable_store.local.
- Choose a different store mode matching the sections actually present in the config.
Example fix
# before [immutable_store] mode = "local" # after [immutable_store] mode = "local" [immutable_store.local] path = "/var/lib/lore/immutable"
Defensive patterns
Strategy: validation
Validate before calling
if settings.immutable_store.mode == "local" && settings.immutable_store.local.is_none() {
return Err(anyhow!("mode=local requires [immutable_store.local] settings"));
} Type guard
fn local_store_configured(s: &ImmutableStoreSettings) -> bool {
s.mode != "local" || s.local.is_some()
} Prevention
- Keep mode and its matching subsection together in config templates.
- Add a CI check that every store mode has its corresponding settings block.
- Watch for TOML typos in subsection keys that silently deserialize as None.
When it happens
Trigger: immutable_store.mode = "local" in config while settings.immutable_store.local is None (no [immutable_store.local] subsection).
Common situations: Setting the mode to local without adding its data_dir/path options; typo in the TOML subsection name so it fails to deserialize; template config left with mode changed but subsection removed.
Understand the failure class
Background: "is required", "must be set", "missing required field": configuration validation errors across open-source libraries — this error's family across 36 libraries.
Related errors
- Missing composite store settings
- Missing replicated store settings
- Missing remote immutable store settings
- Failed to create immutable store plugin
- [environment.endpoint] auth_url is set but [server.auth] is…
AI-assisted analysis of EpicGames/lore@074eb0b0d1 (2026-09-13).
Data as JSON: /api/errors/8e4c29e9b8a9d636.
Report an issue: GitHub.
Appendix: source
Thrown at lore-server/src/server.rs:887
fn name(&self) -> &'static str {
"QuicInternalStreamHandler"
}
}
async fn configure_immutable_store_via_plugin(
registry: &PluginRegistry,
settings: &Settings,
topology: Option<Arc<dyn Topology + Send + Sync>>,
) -> Result<Arc<dyn ImmutableStore>> {
let mode = &settings.immutable_store.mode;
match mode.as_str() {
store_mode::LOCAL => {
let local_settings = settings
.immutable_store
.local
.as_ref()
.ok_or(anyhow!("Missing local immutable store settings"))?;
configure_local_immutable_store(local_settings).await
}
store_mode::COMPOSITE => {
let composite_settings = settings
.immutable_store
.composite
.as_ref()
.ok_or(anyhow!("Missing composite store settings"))?;
configure_composite_store(registry, composite_settings, settings, topology).await
}
store_mode::REPLICATED => {
let replicated_settings = settings
.immutable_store
.replicated
.as_ref()
.ok_or(anyhow!("Missing replicated store settings"))?;View on GitHub (pinned to 074eb0b0d1)