{"record":{"id":"ff8e05d90f15b0bb","repo":"openai/codex","slug":"features-multi-agent-v2-default-wait-timeout-ms-mu","errorCode":null,"errorMessage":"features.multi_agent_v2.default_wait_timeout_ms must be at least features.multi_agent_v2.min_wait_timeout_ms","messagePattern":"features\\.multi_agent_v2\\.default_wait_timeout_ms must be at least features\\.multi_agent_v2\\.min_wait_timeout_ms","errorType":"validation","errorClass":"std::io::Error","httpStatus":null,"severity":"error","filePath":"codex-rs/core/src/config/mod.rs","lineNumber":3734,"sourceCode":"            \"features.multi_agent_v2.min_wait_timeout_ms\",\n            multi_agent_v2.min_wait_timeout_ms,\n        )?;\n        validate_multi_agent_v2_wait_timeout(\n            \"features.multi_agent_v2.max_wait_timeout_ms\",\n            multi_agent_v2.max_wait_timeout_ms,\n        )?;\n        validate_multi_agent_v2_wait_timeout(\n            \"features.multi_agent_v2.default_wait_timeout_ms\",\n            multi_agent_v2.default_wait_timeout_ms,\n        )?;\n        if multi_agent_v2.min_wait_timeout_ms > multi_agent_v2.max_wait_timeout_ms {\n            return Err(std::io::Error::new(\n                std::io::ErrorKind::InvalidInput,\n                \"features.multi_agent_v2.min_wait_timeout_ms must be at most features.multi_agent_v2.max_wait_timeout_ms\",\n            ));\n        }\n        if multi_agent_v2.default_wait_timeout_ms < multi_agent_v2.min_wait_timeout_ms {\n            return Err(std::io::Error::new(\n                std::io::ErrorKind::InvalidInput,\n                \"features.multi_agent_v2.default_wait_timeout_ms must be at least features.multi_agent_v2.min_wait_timeout_ms\",\n            ));\n        }\n        if multi_agent_v2.default_wait_timeout_ms > multi_agent_v2.max_wait_timeout_ms {\n            return Err(std::io::Error::new(\n                std::io::ErrorKind::InvalidInput,\n                \"features.multi_agent_v2.default_wait_timeout_ms must be at most features.multi_agent_v2.max_wait_timeout_ms\",\n            ));\n        }\n        validate_multi_agent_v2_tool_namespace(multi_agent_v2.tool_namespace.as_deref())?;\n        let agents_enabled = cfg\n            .agents\n            .as_ref()\n            .and_then(|agents| agents.enabled)\n            .unwrap_or(true);\n        let agent_max_threads = cfg\n            .agents","sourceCodeStart":3716,"sourceCodeEnd":3752,"githubUrl":"https://github.com/openai/codex/blob/339751715c64496cb86246bfb3935f40e309dd3d/codex-rs/core/src/config/mod.rs#L3716-L3752","documentation":"Config requires default_wait_timeout_ms to lie within [min_wait_timeout_ms, max_wait_timeout_ms]. The lower-bound check fires when default < min: the default wait would violate the configured minimum, so Config::load fails with InvalidInput rather than silently clamping.","triggerScenarios":"Any layer combination where default_wait_timeout_ms resolves below min_wait_timeout_ms (e.g. default = 1000, min = 5000). Runs after the min<=max check, so the range itself is already consistent.","commonSituations":"Raising the min for slow agents but keeping an old default; layered configs where different owners set the default and the min.","solutions":["Raise `default_wait_timeout_ms` to at least `min_wait_timeout_ms`.","Or lower `min_wait_timeout_ms`.","Or remove `default_wait_timeout_ms` so the built-in default applies."],"exampleFix":"# before\n[features.multi_agent_v2]\ndefault_wait_timeout_ms = 1000\nmin_wait_timeout_ms = 5000\n\n# after\n[features.multi_agent_v2]\ndefault_wait_timeout_ms = 5000\nmin_wait_timeout_ms = 5000","handlingStrategy":"validation","validationCode":"import tomllib\nma = tomllib.load(open(\"config.toml\", \"rb\")).get(\"features\", {}).get(\"multi_agent_v2\", {})\nd, mn = ma.get(\"default_wait_timeout_ms\"), ma.get(\"min_wait_timeout_ms\")\nassert d is None or mn is None or d >= mn, \"default_wait_timeout_ms must be >= min_wait_timeout_ms\"","typeGuard":null,"tryCatchPattern":"match config_result {\n    Err(ref e) if e.kind() == std::io::ErrorKind::InvalidInput\n        && e.to_string().contains(\"default_wait_timeout_ms must be at least\") => {\n        // raise the default or lower the min, then retry\n    }\n    other => other,\n}","preventionTips":["Keep default inside [min, max] whenever editing any of the three","Assert the full ordering min<=default<=max in config generation","Review timeout triples as one unit so reviewers catch drift"],"tags":["codex","config","multi-agent","timeouts"],"backgroundTag":"min-max-config-mismatch","analyzedSha":"339751715c64496cb86246bfb3935f40e309dd3d","analyzedAt":"2026-08-25T05:35:09.876Z","schemaVersion":2},"datasetVersion":"2026-08-25T06:17:31.827Z"}