{"record":{"id":"0fa47ffad391f682","repo":"diegosouzapw/OmniRoute","slug":"idempotency-key-required","errorCode":"idempotency_key_required","errorMessage":"idempotencyKey is required.","messagePattern":"idempotencyKey is required\\.","errorType":"exception","errorClass":"CodexResetCreditError","httpStatus":400,"severity":"error","filePath":"src/lib/usage/codexResetCredits.ts","lineNumber":482,"sourceCode":"      \"codex_reset_credit_list_failed\",\n      sanitizeErrorMessage(error) || \"Failed to load Codex reset credits.\"\n    );\n  }\n}\n\nexport async function consumeCodexResetCredit(\n  connectionId: string,\n  idempotencyKey: string,\n  creditId?: string\n): Promise<{\n  outcome: CodexResetCreditOutcome;\n  usage: JsonRecord;\n}> {\n  if (!connectionId || typeof connectionId !== \"string\") {\n    throw new CodexResetCreditError(400, \"connection_id_required\", \"connectionId is required.\");\n  }\n  if (!idempotencyKey || typeof idempotencyKey !== \"string\" || !idempotencyKey.trim()) {\n    throw new CodexResetCreditError(400, \"idempotency_key_required\", \"idempotencyKey is required.\");\n  }\n\n  try {\n    const connection = await loadCodexConnection(connectionId);\n    const normalizedCreditId =\n      typeof creditId === \"string\" && creditId.trim().length > 0 ? creditId.trim() : undefined;\n    const { response } = await consumeWithAuthRetry(\n      connection,\n      idempotencyKey.trim(),\n      normalizedCreditId\n    );\n    const payload = await readResponsePayload(response);\n\n    if (!response.ok) {\n      throwKnownConsumeError(payload);\n      throw new CodexResetCreditError(\n        response.status,\n        \"codex_reset_credit_upstream_error\",","sourceCodeStart":464,"sourceCodeEnd":500,"githubUrl":"https://github.com/diegosouzapw/OmniRoute/blob/a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d/src/lib/usage/codexResetCredits.ts#L464-L500","documentation":"Error \"idempotencyKey is required.\" thrown in diegosouzapw/OmniRoute.","triggerScenarios":"Thrown at src/lib/usage/codexResetCredits.ts:482 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"}