{"record":{"id":"23516b6a4af176a7","repo":"diegosouzapw/OmniRoute","slug":"decodecredentialblob-unsupported-blob-version-s","errorCode":null,"errorMessage":"decodeCredentialBlob: unsupported blob version ${String(parsed.v)} (expected ${CREDENTIAL_BLOB_VERSION})","messagePattern":"decodeCredentialBlob: unsupported blob version (.+?) \\(expected (.+?)\\)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/lib/oauth/credentialBlob.ts","lineNumber":89,"sourceCode":"    throw new Error(\n      `decodeCredentialBlob: invalid format — must start with \"${CREDENTIAL_BLOB_PREFIX}\"`\n    );\n  }\n  const b64 = blob.slice(CREDENTIAL_BLOB_PREFIX.length).trim();\n  if (!/^[A-Za-z0-9_-]+$/.test(b64)) {\n    throw new Error(\"decodeCredentialBlob: invalid payload — not base64url\");\n  }\n\n  let parsed: { v?: unknown; provider?: unknown; tokens?: unknown };\n  try {\n    const json = Buffer.from(b64, \"base64url\").toString(\"utf8\");\n    parsed = JSON.parse(json);\n  } catch {\n    throw new Error(\"decodeCredentialBlob: invalid payload — could not parse JSON\");\n  }\n\n  if (parsed.v !== CREDENTIAL_BLOB_VERSION) {\n    throw new Error(\n      `decodeCredentialBlob: unsupported blob version ${String(parsed.v)} (expected ${CREDENTIAL_BLOB_VERSION})`\n    );\n  }\n  if (typeof parsed.provider !== \"string\" || !parsed.provider.trim()) {\n    throw new Error(\"decodeCredentialBlob: invalid payload — missing provider\");\n  }\n  const tokens = parsed.tokens as CredentialBlobTokens | undefined;\n  if (!tokens || typeof tokens !== \"object\") {\n    throw new Error(\"decodeCredentialBlob: invalid payload — missing tokens\");\n  }\n  if (typeof tokens.access_token !== \"string\" || !tokens.access_token) {\n    throw new Error(\"decodeCredentialBlob: invalid payload — missing access_token\");\n  }\n\n  return { provider: parsed.provider.trim(), tokens };\n}\n","sourceCodeStart":71,"sourceCodeEnd":106,"githubUrl":"https://github.com/diegosouzapw/OmniRoute/blob/a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d/src/lib/oauth/credentialBlob.ts#L71-L106","documentation":"Error \"decodeCredentialBlob: unsupported blob version ${String(parsed.v)} (expected ${CREDENTIAL_BLOB_VERSION})\" thrown in diegosouzapw/OmniRoute.","triggerScenarios":"Thrown at src/lib/oauth/credentialBlob.ts:89 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"}