EpicGames/lore · error
Invalid settings, cannot have composite store as mutable…
Error message
Invalid settings, cannot have composite store as mutable store
What it means
A composite store is only meaningful as an immutable store (it combines local and remote sub-stores). configure_mutable_store_via_plugin explicitly rejects mode = "composite" for the mutable store with this anyhow error before any store is created. The rejection is unconditional: composite mutable stores are not supported by design.
Solutions
- Set mutable_store.mode to "local", "remote", or a plugin mode; keep "composite" only under [immutable_store].
- If you need tiered mutable behavior, configure a mutable-store plugin that offers the layering instead.
- Audit generated/templated configs so immutable-store values are never copied into the mutable section.
Example fix
// before (settings.toml) [mutable_store] mode = "composite" // after (settings.toml) [mutable_store] mode = "remote" [mutable_store.remote] url = "https://storage.example.com"
Defensive patterns
Strategy: validation
Validate before calling
// Rust
fn validate_mutable_mode(settings: &Settings) -> Result<(), String> {
if settings.mutable_store.mode == "composite" {
return Err("composite is only valid for immutable_store".into());
}
Ok(())
} Prevention
- Remember: composite = immutable-only; mutable supports local/remote/plugin modes.
- Generate mutable_store config from its own template, never from the immutable one.
- Add a startup config lint that rejects composite under mutable_store.
When it happens
Trigger: Settings contain `[mutable_store] mode = "composite"`, hitting the store_mode::COMPOSITE arm which always returns Err.
Common situations: Duplicating the `[immutable_store]` block as `[mutable_store]` during setup; confusing composite (immutable-only) with replicated semantics; scripting config generation from the immutable-store template.
Related errors
- replicated mutable store is not implemented
- Missing local mutable store settings
- Failed to create mutable store plugin
- Missing composite local store settings
- Composite store not supported as a composite substore
AI-assisted analysis of EpicGames/lore@074eb0b0d1 (2026-09-13).
Data as JSON: /api/errors/47a4ac1f76305f72.
Report an issue: GitHub.
Appendix: source
Thrown at lore-server/src/server.rs:960
let local_settings = settings
.mutable_store
.local
.as_ref()
.ok_or(anyhow!("Missing local mutable store settings"))?;
configure_local_mutable_store(local_settings, immutable_store).await
}
store_mode::REMOTE => {
let remote_settings = settings
.mutable_store
.remote
.as_ref()
.ok_or(anyhow!("Missing remote mutable store settings"))?;
configure_remote_mutable_store(remote_settings)
}
store_mode::REPLICATED => Err(anyhow!("replicated mutable store is not implemented")),
store_mode::COMPOSITE => Err(anyhow!(
"Invalid settings, cannot have composite store as mutable store"
)),
_ => {
// All other modes use the plugin system
let plugin_config =
resolve_plugin_config_with_fallback(&settings.plugins, mode, "mutable_store")
.unwrap_or_else(|| toml::Value::Table(toml::map::Map::new()));
info!(mode, "Creating mutable store via plugin system");
registry
.create_mutable_store(mode, &plugin_config, immutable_store)
.map_err(|e| anyhow!("Failed to create mutable store plugin '{mode}': {e}"))
}
}
}
fn configure_lock_store_via_plugin(View on GitHub (pinned to 074eb0b0d1)