{"record":{"id":"ffe576f818d9d51c","repo":"garrytan/gstack","slug":"not-installed","errorCode":"not_installed","errorMessage":"${browser.name} is not installed (no cookie database at ${attempted.join(' or ')})","messagePattern":"(.+?) is not installed \\(no cookie database at (.+?)\\)","errorType":"exception","errorClass":"CookieImportError","httpStatus":null,"severity":"error","filePath":"browse/src/cookie-import-browser.ts","lineNumber":379,"sourceCode":"        }\n      } catch {}\n    }\n  }\n  return null;\n}\n\nfunction getBrowserMatch(browser: BrowserInfo, profile: string): BrowserMatch {\n  const match = findBrowserMatch(browser, profile);\n  if (match) return match;\n\n  const attempted = getSearchPlatforms()\n    .map(platform => {\n      const dataDir = getDataDirForPlatform(browser, platform);\n      return dataDir ? path.join(getBaseDir(platform), dataDir, profile, 'Cookies') : null;\n    })\n    .filter((entry): entry is string => entry !== null);\n\n  throw new CookieImportError(\n    `${browser.name} is not installed (no cookie database at ${attempted.join(' or ')})`,\n    'not_installed',\n  );\n}\n\n// ─── Internal: SQLite Access ────────────────────────────────────\n\nfunction openDb(dbPath: string, browserName: string): Database {\n  // On Windows, Chrome holds exclusive WAL locks even when we open readonly.\n  // The readonly open may \"succeed\" but return empty results because the WAL\n  // (where all actual data lives) can't be replayed. Always use the copy\n  // approach on Windows so we can open read-write and process the WAL.\n  if (process.platform === 'win32') {\n    return openDbFromCopy(dbPath, browserName);\n  }\n  try {\n    return new Database(dbPath, { readonly: true });\n  } catch (err: any) {","sourceCodeStart":361,"sourceCodeEnd":397,"githubUrl":"https://github.com/garrytan/gstack/blob/94993f74012782fd94416dd44b8314f6363a13a4/browse/src/cookie-import-browser.ts#L361-L397","documentation":"Error \"${browser.name} is not installed (no cookie database at ${attempted.join(' or ')})\" thrown in garrytan/gstack.","triggerScenarios":"Thrown at browse/src/cookie-import-browser.ts:379 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":"94993f74012782fd94416dd44b8314f6363a13a4","analyzedAt":"2026-08-12T04:06:23.140Z","schemaVersion":2},"datasetVersion":"2026-08-12T13:17:24.610Z"}