BigPizzaV3/CodexPlusPlus · error · anyhow::Error
上下文 id 不能为空
Error message
上下文 id 不能为空
What it means
Thrown by upsert_context_entry_in_common_config when the trimmed entry id is empty. The function writes a named [mcp_servers/skills/plugins.<id>] table into the shared common config, so a blank id would produce an anonymous/unaddressable entry; the offending input is the caller-supplied id string. The backfill paths surface this when replaying profile context entries.
Source
Thrown at crates/codex-plus-core/src/relay_config.rs:928
) -> anyhow::Result<CodexContextEntries> {
let normalized = normalize_duplicate_toml_text(common_config);
let doc = parse_toml_document(&normalized)?;
Ok(CodexContextEntries {
mcp_servers: list_context_entries_for_table(&doc, "mcp_servers"),
skills: list_context_entries_for_table(&doc, "skills"),
plugins: list_context_entries_for_table(&doc, "plugins"),
})
}
pub fn upsert_context_entry_in_common_config(
common_config: &str,
kind: &str,
id: &str,
toml_body: &str,
) -> anyhow::Result<String> {
let id = id.trim();
if id.is_empty() {
anyhow::bail!("上下文 id 不能为空");
}
let table_name = context_table_name(kind)?;
let body_doc = parse_toml_document(toml_body)?;
let normalized = normalize_duplicate_toml_text(common_config);
let mut doc = parse_toml_document(&normalized)?;
if !doc.as_table().contains_key(table_name) {
doc[table_name] = toml_edit::table();
}
if doc[table_name].as_table().is_none() {
anyhow::bail!("{table_name} 必须是 TOML 表");
}
doc[table_name][id] = Item::Table(body_doc.as_table().clone());
Ok(normalize_optional_toml(doc))
}
pub fn delete_context_entry_from_common_config(
common_config: &str,
kind: &str,View on GitHub (pinned to f2074595a2)
Solutions
- 为条目提供非空 id
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/codex-plus-core/src/relay_config.rs:928 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of BigPizzaV3/CodexPlusPlus@f2074595a2 (2026-08-23).
Data as JSON: /api/errors/42449e084ddae4e9.
Report an issue: GitHub.