{"record":{"id":"fdaba6eb43fcd853","repo":"diegosouzapw/OmniRoute","slug":"issue-agent-timeout","errorCode":"ISSUE_AGENT_TIMEOUT","errorMessage":"${sanitizeErrorMessage(error.message)}","messagePattern":"\\$\\{sanitizeErrorMessage\\(error\\.message\\)\\}","errorType":"http","errorClass":"RecordedTriageTimeoutError","httpStatus":504,"severity":"error","filePath":"src/app/api/issue-agent/runs/route.ts","lineNumber":125,"sourceCode":"        provider: parsed.provider,\n        routingPolicy: parsed.routingPolicy,\n        timeoutMs: parsed.timeoutMs,\n      },\n      postChatCompletion\n    );\n    return NextResponse.json(\n      {\n        ...run,\n        runner: \"omniroute-chat-completions\",\n        auditPath: audit.path,\n        completion: completion.body,\n      },\n      { status: completion.status }\n    );\n  } catch (error) {\n    if (error instanceof RecordedTriageTimeoutError) {\n      return NextResponse.json(\n        { error: sanitizeErrorMessage(error.message), code: \"ISSUE_AGENT_TIMEOUT\" },\n        { status: 504 }\n      );\n    }\n    // Hard Rule #12: never put a raw err.message in a response. Validation\n    // failures thrown by this module (bad issue URL, malformed GitHub export)\n    // are safe, curated messages meant for the client — sanitizeErrorMessage()\n    // is a no-op for them. An opaque Node system/fs error (e.g. audit.ts\n    // failing to mkdir/appendFile under DATA_DIR) is replaced with a generic\n    // message instead, since its raw text would otherwise embed the server's\n    // absolute filesystem path.\n    const message = isNodeSystemError(error)\n      ? \"Issue Agent request failed due to an internal error\"\n      : sanitizeErrorMessage(error instanceof Error ? error.message : \"Invalid issue-agent request\");\n    return NextResponse.json({ error: message }, { status: 400 });\n  }\n}\n","sourceCodeStart":107,"sourceCodeEnd":142,"githubUrl":"https://github.com/diegosouzapw/OmniRoute/blob/a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d/src/app/api/issue-agent/runs/route.ts#L107-L142","documentation":"Error \"${sanitizeErrorMessage(error.message)}\" thrown in diegosouzapw/OmniRoute.","triggerScenarios":"Thrown at src/app/api/issue-agent/runs/route.ts:125 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":"a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d","analyzedAt":"2026-08-25T18:35:09.898Z","schemaVersion":2},"datasetVersion":"2026-08-25T21:54:21.419Z"}