EpicGames/lore · error
Missing remote immutable store settings
Error message
Missing remote immutable store settings
What it means
Thrown by configure_immutable_store_via_plugin when mode is "remote" but settings.immutable_store.remote is None. Remote stores need endpoint/connection settings; without them the store cannot be constructed and startup aborts.
Solutions
- Add an [immutable_store.remote] section with endpoint/connection settings.
- Verify the subsection key matches the Settings schema.
- Pick a mode consistent with the config sections provided.
Example fix
# before [immutable_store] mode = "remote" # after [immutable_store] mode = "remote" [immutable_store.remote] endpoint = "http://remote-host:9000"
Defensive patterns
Strategy: validation
Validate before calling
if settings.immutable_store.mode == "remote" && settings.immutable_store.remote.is_none() {
return Err(anyhow!("mode=remote requires [immutable_store.remote] settings"));
} Type guard
fn remote_store_configured(s: &ImmutableStoreSettings) -> bool {
s.mode != "remote" || s.remote.is_some()
} Prevention
- Always supply endpoint/connection settings when selecting remote mode.
- Validate mode/subsection pairing at startup before touching stores.
- Keep remote backend credentials and endpoints in the dedicated subsection only.
When it happens
Trigger: immutable_store.mode = "remote" in config while settings.immutable_store.remote is None (missing [immutable_store.remote] subsection).
Common situations: Pointing the mode at a remote backend without adding its endpoint settings; config migration dropping the subsection; typo in the TOML key.
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 local immutable store settings
- Missing composite store settings
- Missing replicated 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/52dabf970ea6b03d.
Report an issue: GitHub.
Appendix: source
Thrown at lore-server/src/server.rs:914
.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"))?;
configure_replicated_immutable_store(replicated_settings).await
}
store_mode::REMOTE => {
let remote_settings = settings
.immutable_store
.remote
.as_ref()
.ok_or(anyhow!("Missing remote immutable store settings"))?;
configure_remote_immutable_store(remote_settings)
}
_ => {
// All other modes use the plugin system
let plugin_config =
resolve_plugin_config_with_fallback(&settings.plugins, mode, "immutable_store")
.unwrap_or_else(|| toml::Value::Table(toml::map::Map::new()));
info!(mode, "Creating immutable store via plugin system");
registry
.create_immutable_store(mode, &plugin_config)
.map_err(|e| anyhow!("Failed to create immutable store plugin '{mode}': {e}"))
}
}
}
View on GitHub (pinned to 074eb0b0d1)