openai/codex · error · anyhow::Error
Desktop app at {} failed OpenAI signature verification (team
Error message
Desktop app at {} failed OpenAI signature verification (team {OPENAI_APPLE_TEAM_IDENTIFIER}, bundle {CODEX_BUNDLE_IDENTIFIER}): {} What it means
Error "Desktop app at {} failed OpenAI signature verification (team {OPENAI_APPLE_TEAM_IDENTIFIER}, bundle {CODEX_BUNDLE_IDENTIFIER}): {}" thrown in openai/codex.
Source
Thrown at codex-rs/cli/src/desktop_app/mac.rs:144
}
async fn verify_codex_app_bundle(app_path: &Path) -> anyhow::Result<()> {
let requirement = format!(
"identifier \"{CODEX_BUNDLE_IDENTIFIER}\" and anchor apple generic and certificate leaf[subject.OU] = \"{OPENAI_APPLE_TEAM_IDENTIFIER}\""
);
let output = Command::new("/usr/bin/codesign")
.args(["--verify", "--deep", "--strict"])
.arg(format!("-R={requirement}"))
.arg(app_path)
.output()
.await
.context("failed to verify Desktop app signature")?;
if output.status.success() {
return Ok(());
}
anyhow::bail!(
"Desktop app at {} failed OpenAI signature verification (team {OPENAI_APPLE_TEAM_IDENTIFIER}, bundle {CODEX_BUNDLE_IDENTIFIER}): {}",
app_path.display(),
String::from_utf8_lossy(&output.stderr).trim()
);
}
fn codex_new_thread_url(workspace: &Path) -> String {
let workspace = workspace.as_os_str().to_string_lossy();
let mut serializer = url::form_urlencoded::Serializer::new(String::new());
serializer.append_pair("path", workspace.as_ref());
let query = serializer.finish();
format!("codex://threads/new?{query}")
}
async fn download_and_install_codex_to_user_applications(dmg_url: &str) -> anyhow::Result<PathBuf> {
let temp_dir = Builder::new()
.prefix("codex-app-installer-")
.tempdir()View on GitHub (pinned to 339751715c)
When it happens
Trigger: Thrown at codex-rs/cli/src/desktop_app/mac.rs:144 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of openai/codex@339751715c (2026-08-25).
Data as JSON: /api/errors/f3e9088ad2cbdc0b.
Report an issue: GitHub.