{"record":{"id":"00b863c850043f1f","repo":"diegosouzapw/OmniRoute","slug":"db-failed-to-verify-api-keys-schema","errorCode":null,"errorMessage":"[DB] Failed to verify api_keys schema:","messagePattern":"\\[DB\\] Failed to verify api_keys schema:","errorType":"console","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/lib/db/apiKeys.ts","lineNumber":415,"sourceCode":"): void {\n  if (columnNames.has(column.name)) return;\n  db.exec(`ALTER TABLE api_keys ADD COLUMN ${column.definition}`);\n  console.log(`[DB] Added api_keys.${column.name} column`);\n}\n\nfunction ensureApiKeysColumns(db: ApiKeysDbLike) {\n  if (_schemaChecked) return;\n\n  try {\n    const columns = db.prepare<ApiKeyRow>(\"PRAGMA table_info(api_keys)\").all();\n    const columnNames = new Set(columns.map((column) => String(column.name ?? \"\")));\n    for (const column of API_KEY_COLUMN_FALLBACKS) {\n      ensureApiKeyColumn(db, columnNames, column);\n    }\n    _schemaChecked = true;\n  } catch (error) {\n    const message = error instanceof Error ? error.message : String(error);\n    console.warn(\"[DB] Failed to verify api_keys schema:\", message);\n  }\n}\n\nlet _stmtDb: ApiKeysDbLike | null = null;\nfunction getPreparedStatements(db: ApiKeysDbLike): ApiKeysStatements {\n  ensureApiKeysColumns(db);\n\n  if (\n    !_stmtGetAllKeys ||\n    !_stmtGetKeyById ||\n    !_stmtValidateKey ||\n    !_stmtGetKeyMetadata ||\n    !_stmtInsertKey ||\n    !_stmtDeleteKey ||\n    _stmtDb !== db\n  ) {\n    _stmtDb = db;\n    _stmtGetAllKeys = db.prepare<ApiKeyRow>(\"SELECT * FROM api_keys ORDER BY created_at\");","sourceCodeStart":397,"sourceCodeEnd":433,"githubUrl":"https://github.com/diegosouzapw/OmniRoute/blob/a179ffed5bb2e0b883b9ae7214ce8717b2a94c4d/src/lib/db/apiKeys.ts#L397-L433","documentation":"Error \"[DB] Failed to verify api_keys schema:\" thrown in diegosouzapw/OmniRoute.","triggerScenarios":"Thrown at src/lib/db/apiKeys.ts:415 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"}