{"record":{"id":"a2d4e8cfd7deb1d1","repo":"openai/codex","slug":"requirements-toml-default-permissions-must-be-set","errorCode":null,"errorMessage":"requirements.toml default_permissions must be set unless allowed_permission_profiles allows both `:workspace` and `:read-only`","messagePattern":"requirements\\.toml default_permissions must be set unless allowed_permission_profiles allows both `:workspace` and `:read-only`","errorType":"validation","errorClass":"std::io::Error","httpStatus":null,"severity":"error","filePath":"codex-rs/core/src/config/mod.rs","lineNumber":4600,"sourceCode":"}\n\nfn resolve_default_permissions<'a>(\n    default_permissions_override: Option<&'a str>,\n    configured_default_permissions: Option<&'a str>,\n    requirements_toml: &'a ConfigRequirementsToml,\n    startup_warnings: &mut Vec<String>,\n) -> std::io::Result<Option<&'a str>> {\n    let selected_permissions = default_permissions_override.or(configured_default_permissions);\n    let Some(allowed_permission_profiles) = requirements_toml.allowed_permission_profiles.as_ref()\n    else {\n        return Ok(selected_permissions);\n    };\n    let Some(fallback_permissions) = requirements_toml\n        .default_permissions\n        .as_deref()\n        .or_else(|| implicit_default_permissions(allowed_permission_profiles))\n    else {\n        return Err(std::io::Error::new(\n            ErrorKind::InvalidInput,\n            \"requirements.toml default_permissions must be set unless allowed_permission_profiles allows both `:workspace` and `:read-only`\",\n        ));\n    };\n\n    match selected_permissions {\n        None => Ok(Some(fallback_permissions)),\n        Some(selected_permissions)\n            if is_permission_allowed(allowed_permission_profiles, selected_permissions) =>\n        {\n            Ok(Some(selected_permissions))\n        }\n        Some(selected_permissions) => {\n            startup_warnings.push(format!(\n                \"Configured value for `permission_profile` is disallowed by requirements; falling back from `{selected_permissions}` to required value `{fallback_permissions}`.\"\n            ));\n            Ok(Some(fallback_permissions))\n        }","sourceCodeStart":4582,"sourceCodeEnd":4618,"githubUrl":"https://github.com/openai/codex/blob/339751715c64496cb86246bfb3935f40e309dd3d/codex-rs/core/src/config/mod.rs#L4582-L4618","documentation":"Error \"requirements.toml default_permissions must be set unless allowed_permission_profiles allows both `:workspace` and `:read-only`\" thrown in openai/codex.","triggerScenarios":"Thrown at codex-rs/core/src/config/mod.rs:4600 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set requirements.toml default_permissions, or widen allowed_permission_profiles to allow both `:workspace` and `:read-only`."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"339751715c64496cb86246bfb3935f40e309dd3d","analyzedAt":"2026-08-25T05:35:09.876Z","schemaVersion":2},"datasetVersion":"2026-08-25T06:17:31.827Z"}