{"record":{"id":"8e2f03d7793a9169","repo":"affaan-m/ECC","slug":"unknown-memory-connector-name","errorCode":null,"errorMessage":"Unknown memory connector: {name}","messagePattern":"Unknown memory connector: (.+?)","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"ecc2/src/main.rs","lineNumber":2942,"sourceCode":") -> Result<()> {\n    db.refresh_session_durations()?;\n    db.sync_cost_tracker_metrics(&cfg.cost_metrics_path())?;\n    db.sync_tool_activity_metrics(&cfg.tool_activity_metrics_path())?;\n    let _ = session::manager::enforce_session_heartbeats(db, cfg)?;\n    let _ = session::manager::enforce_budget_hard_limits(db, cfg)?;\n    Ok(())\n}\n\nfn sync_memory_connector(\n    db: &session::store::StateStore,\n    cfg: &config::Config,\n    name: &str,\n    limit: usize,\n) -> Result<GraphConnectorSyncStats> {\n    let connector = cfg\n        .memory_connectors\n        .get(name)\n        .ok_or_else(|| anyhow::anyhow!(\"Unknown memory connector: {name}\"))?;\n\n    match connector {\n        config::MemoryConnectorConfig::JsonlFile(settings) => {\n            sync_jsonl_memory_connector(db, name, settings, limit)\n        }\n        config::MemoryConnectorConfig::JsonlDirectory(settings) => {\n            sync_jsonl_directory_memory_connector(db, name, settings, limit)\n        }\n        config::MemoryConnectorConfig::MarkdownFile(settings) => {\n            sync_markdown_memory_connector(db, name, settings, limit)\n        }\n        config::MemoryConnectorConfig::MarkdownDirectory(settings) => {\n            sync_markdown_directory_memory_connector(db, name, settings, limit)\n        }\n        config::MemoryConnectorConfig::DotenvFile(settings) => {\n            sync_dotenv_memory_connector(db, name, settings, limit)\n        }\n    }","sourceCodeStart":2924,"sourceCodeEnd":2960,"githubUrl":"https://github.com/affaan-m/ECC/blob/8321021c54d670126ce3b2969d5deb880b4b0c2a/ecc2/src/main.rs#L2924-L2960","documentation":"Raised in `sync_memory_connector` when the given connector `name` is not a key of `cfg.memory_connectors`. The function resolves the name against the loaded configuration before dispatching to the connector-specific sync implementation; unknown names fail fast with this message naming the offending value.","triggerScenarios":"Running connector sync with `--connector <name>` where `name` is misspelled, was renamed in `config.toml`, or the connector was removed from `[memory_connectors]`; also when ECC loaded a different config file than the one containing the connector.","commonSituations":"Typos in connector names; forgetting that names are the TOML keys under `memory_connectors`; switching profiles/configs so the connector definition isn't loaded; renaming a connector in config but not in scripts.","solutions":["Open the active `config.toml` and check the exact keys under `[memory_connectors]`.","Fix the name in the command to match the config key exactly.","Verify which config file is loaded (e.g. `--config` flag or ECC home override).","Add the missing connector definition to `[memory_connectors]` if it was never configured."],"exampleFix":"// before\n$ ecc memory sync --connector note-files\nerror: Unknown memory connector: note-files\n// after\n# config.toml: [memory_connectors.notes_jsonl]\n$ ecc memory sync --connector notes_jsonl","handlingStrategy":"validation","validationCode":"# Check the connector is configured before syncing\nif ! grep -q \"\\[memory_connectors.$NAME\\]\" config.toml; then\n  echo \"connector '$NAME' not in config.toml [memory_connectors]\" >&2; exit 2\nfi","typeGuard":null,"tryCatchPattern":"match sync_memory_connector(&db, &cfg, name, limit) {\n    Err(e) if e.to_string().starts_with(\"Unknown memory connector\") => {\n        eprintln!(\"available: {:?}\", cfg.memory_connectors.keys().collect::<Vec<_>>());\n    }\n    Err(e) => return Err(e),\n    Ok(stats) => println!(\"{:?}\", stats),\n}","preventionTips":["Names are the exact TOML keys under `[memory_connectors]` — copy them from config.","Update scripts whenever a connector is renamed or removed in config.","Confirm which config file the CLI loads (profiles/`--config`) before scripting."],"tags":["cli","config","not-found","connectors"],"backgroundTag":"invalid-config-value","analyzedSha":"8321021c54d670126ce3b2969d5deb880b4b0c2a","analyzedAt":"2026-09-16T10:08:13.343Z","contentChangedAt":"2026-09-16T10:08:13.343Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}