{"record":{"id":"d9d66e6a3ec88777","repo":"openai/codex","slug":"idempotency-key-refers-to-deleted-project-idempo","errorCode":null,"errorMessage":"idempotency key refers to deleted project: {idempotency_key}","messagePattern":"idempotency key refers to deleted project: (.+?)","errorType":"validation","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"codex-rs/state/src/runtime/projects.rs","lineNumber":135,"sourceCode":"        let project_id = sqlx::query_scalar::<_, String>(\n            \"SELECT project_id FROM project_idempotency_keys WHERE key = ?\",\n        )\n        .bind(idempotency_key)\n        .fetch_optional(&mut *tx)\n        .await?;\n        let Some(project_id) = project_id else {\n            tx.commit().await?;\n            return Ok(None);\n        };\n        let row = sqlx::query(\n            \"SELECT id, name, metadata, position, created_at_ms, updated_at_ms FROM projects WHERE id = ?\",\n        )\n        .bind(&project_id)\n        .fetch_optional(&mut *tx)\n        .await?;\n        let Some(row) = row else {\n            tx.rollback().await?;\n            anyhow::bail!(\"idempotency key refers to deleted project: {idempotency_key}\");\n        };\n        let project = project_from_row_in_tx(&mut tx, &row).await?;\n        tx.commit().await?;\n        Ok(Some(project))\n    }\n\n    pub async fn create_project(\n        &self,\n        name: String,\n        roots: Vec<ProjectRoot>,\n        metadata: BTreeMap<String, String>,\n        thread_ids: &[String],\n        idempotency_key: &str,\n    ) -> anyhow::Result<CreatedProject> {\n        let mut tx = self.pool.begin_with(\"BEGIN IMMEDIATE\").await?;\n        let existing_project_id = sqlx::query_scalar::<_, String>(\n            \"SELECT project_id FROM project_idempotency_keys WHERE key = ?\",\n        )","sourceCodeStart":117,"sourceCodeEnd":153,"githubUrl":"https://github.com/openai/codex/blob/339751715c64496cb86246bfb3935f40e309dd3d/codex-rs/state/src/runtime/projects.rs#L117-L153","documentation":"Error \"idempotency key refers to deleted project: {idempotency_key}\" thrown in openai/codex.","triggerScenarios":"Thrown at codex-rs/state/src/runtime/projects.rs:135 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"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"}