{"record":{"id":"36ba5635b5a1e736","repo":"diegosouzapw/OmniRoute","slug":"missing-self-usage-scope","errorCode":null,"errorMessage":"missing_self_usage_scope","messagePattern":"missing_self_usage_scope","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/lib/usage/apiKeySelfService.ts","lineNumber":388,"sourceCode":"\n  return {\n    now: deps.now ?? Date.now,\n    getCostSummary: deps.getCostSummary ?? costRules!.getCostSummary,\n    checkBudget: deps.checkBudget ?? costRules!.checkBudget,\n    getDbInstance: deps.getDbInstance ?? dbCore!.getDbInstance,\n    getProviderConnectionById: deps.getProviderConnectionById ?? localDb!.getProviderConnectionById,\n    getProviderConnections: deps.getProviderConnections ?? localDb!.getProviderConnections,\n    fetchAndPersistProviderLimits:\n      deps.fetchAndPersistProviderLimits ?? providerLimits!.fetchAndPersistProviderLimits,\n  };\n}\n\nexport async function buildApiKeySelfServiceStatus(\n  metadata: ApiKeySelfServiceMetadata,\n  deps: ApiKeySelfServiceDeps = {}\n) {\n  if (!hasSelfUsageScope(metadata.scopes)) {\n    throw new Error(\"missing_self_usage_scope\");\n  }\n\n  const resolvedDeps = await normalizeDeps(deps);\n  const summary = resolvedDeps.getCostSummary(metadata.id);\n  resolvedDeps.checkBudget(metadata.id);\n\n  const cost = buildCostStatus(summary, resolvedDeps.now());\n  const tokens = aggregateTokens(\n    resolvedDeps.getDbInstance() as DbLike,\n    metadata.id,\n    cost.periodStartAt ?? new Date(getCurrentMonthWindow(resolvedDeps.now()).periodStartAt).toISOString()\n  );\n  const accountQuotas = await resolveAccountQuotas(metadata, resolvedDeps);\n  const accountQuota =\n    accountQuotas && accountQuotas.length === 1 ? accountQuotas[0] : undefined;\n\n  return {\n    apiKey: {","sourceCodeStart":370,"sourceCodeEnd":406,"githubUrl":"https://github.com/diegosouzapw/OmniRoute/blob/a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d/src/lib/usage/apiKeySelfService.ts#L370-L406","documentation":"Error \"missing_self_usage_scope\" thrown in diegosouzapw/OmniRoute.","triggerScenarios":"Thrown at src/lib/usage/apiKeySelfService.ts:388 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"}