{"record":{"id":"a3bd18172b54c71a","repo":"openai/codex","slug":"duplicate-tool-0","errorCode":null,"errorMessage":"duplicate tool: {0}","messagePattern":"duplicate tool: (.+?)","errorType":"exception","errorClass":"CodexErr","httpStatus":null,"severity":"error","filePath":"codex-rs/protocol/src/error.rs","lineNumber":124,"sourceCode":"    Timeout,\n    #[error(\"request timed out\")]\n    RequestTimeout,\n    /// Returned by run_command_stream when the child could not be spawned (its stdout/stderr pipes\n    /// could not be captured). Analogous to the previous `CodexError::Spawn` variant.\n    #[error(\"spawn failed: child stdout/stderr not captured\")]\n    Spawn,\n    /// Returned by run_command_stream when the user pressed Ctrl-C (SIGINT). Session uses this to\n    /// surface a polite FunctionCallOutput back to the model instead of crashing the CLI.\n    #[error(\"interrupted (Ctrl-C). Something went wrong? Hit `/feedback` to report the issue.\")]\n    Interrupted,\n    /// Unexpected HTTP status code.\n    #[error(\"{0}\")]\n    UnexpectedStatus(UnexpectedResponseError),\n    /// Invalid request.\n    #[error(\"{0}\")]\n    InvalidRequest(String),\n    /// Multiple registered tools share the same effective name.\n    #[error(\"duplicate tool: {0}\")]\n    ToolCollision(String),\n    /// Invalid image.\n    #[error(\"Image poisoning\")]\n    InvalidImageRequest(),\n    #[error(\"{0}\")]\n    UsageLimitReached(UsageLimitReachedError),\n    #[error(\"Selected model is at capacity. Please try a different model.\")]\n    ServerOverloaded,\n    #[error(\"{message}\")]\n    CyberPolicy { message: String },\n    #[error(\"{message}\")]\n    MisalignmentPolicyViolation { message: String },\n    #[error(\"{0}\")]\n    ResponseStreamFailed(ResponseStreamFailed),\n    #[error(\"{0}\")]\n    ConnectionFailed(ConnectionFailedError),\n    #[error(\"Quota exceeded. Check your plan and billing details.\")]\n    QuotaExceeded,","sourceCodeStart":106,"sourceCodeEnd":142,"githubUrl":"https://github.com/openai/codex/blob/339751715c64496cb86246bfb3935f40e309dd3d/codex-rs/protocol/src/error.rs#L106-L142","documentation":"Error \"duplicate tool: {0}\" thrown in openai/codex.","triggerScenarios":"Thrown at codex-rs/protocol/src/error.rs:124 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"}