{"record":{"id":"9270be846f3c6a99","repo":"musistudio/claude-code-router","slug":"page-blocked","errorCode":null,"errorMessage":"${page.blocked}","messagePattern":"\\$\\{page\\.blocked\\}","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"packages/electron/src/main/electron-web-search-mcp.ts","lineNumber":453,"sourceCode":"}\n\nclass HiddenBrowserSearchPool {\n  private configuredSession = false;\n  private queue: BrowserSearchQueueEntry[] = [];\n  private window?: BrowserWindow;\n  private workers: BrowserSearchWorker[] = [];\n\n  async search(input: BrowserSearchInput): Promise<BrowserSearchResponse> {\n    const request = buildBrowserSearchRequest(input);\n    const worker = await this.acquire(request.timeoutMs);\n    let page: BrowserSearchPageResult;\n    try {\n      page = await runSearchInWorker(worker, request);\n    } finally {\n      this.release(worker);\n    }\n    if (page.blocked) {\n      throw new Error(page.blocked);\n    }\n    const results = uniqueSearchResults(page.results ?? []).slice(0, request.count);\n    return {\n      engine: request.engine,\n      query: request.query,\n      results: await this.enrichResults(results, request),\n      searchUrl: request.searchUrl\n    };\n  }\n\n  destroy(): void {\n    this.queue.splice(0).forEach((entry) => entry.reject(new Error(\"Browser search service stopped.\")));\n    this.queue = [];\n    for (const worker of this.workers) {\n      if (!worker.view.webContents.isDestroyed()) {\n        worker.view.webContents.close({ waitForBeforeUnload: false });\n      }\n    }","sourceCodeStart":435,"sourceCodeEnd":471,"githubUrl":"https://github.com/musistudio/claude-code-router/blob/99f24806c6a2c660b16e53e95211c517448a6c90/packages/electron/src/main/electron-web-search-mcp.ts#L435-L471","documentation":"Error \"${page.blocked}\" thrown in musistudio/claude-code-router.","triggerScenarios":"Thrown at packages/electron/src/main/electron-web-search-mcp.ts:453 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":"99f24806c6a2c660b16e53e95211c517448a6c90","analyzedAt":"2026-08-27T04:11:01.184Z","schemaVersion":2},"datasetVersion":"2026-08-27T08:17:20.692Z"}