{"record":{"id":"664b0afb51c7d240","repo":"garrytan/gstack","slug":"browse-client-command-cmd-timed-out-after-664b0a","errorCode":null,"errorMessage":"browse-client: command \"${cmd}\" timed out after ${this.timeoutMs}ms","messagePattern":"browse-client: command \"(.+?)\" timed out after (.+?)ms","errorType":"exception","errorClass":"BrowseClientError","httpStatus":null,"severity":"error","filePath":"browser-skills/hackernews-frontpage/_lib/browse-client.ts","lineNumber":169,"sourceCode":"      command: cmd,\n      args,\n      ...(this.tabId !== undefined && !isNaN(this.tabId) ? { tabId: this.tabId } : {}),\n    });\n\n    let resp: Response;\n    try {\n      resp = await fetch(`http://127.0.0.1:${this.port}/command`, {\n        method: 'POST',\n        headers: {\n          'Content-Type': 'application/json',\n          'Authorization': `Bearer ${this.token}`,\n        },\n        body,\n        signal: AbortSignal.timeout(this.timeoutMs),\n      });\n    } catch (err: any) {\n      if (err.name === 'TimeoutError' || err.name === 'AbortError') {\n        throw new BrowseClientError(`browse-client: command \"${cmd}\" timed out after ${this.timeoutMs}ms`);\n      }\n      if (err.code === 'ECONNREFUSED') {\n        throw new BrowseClientError(`browse-client: daemon not running on port ${this.port}`);\n      }\n      throw new BrowseClientError(`browse-client: ${err.message ?? err}`);\n    }\n\n    const text = await resp.text();\n    if (!resp.ok) {\n      let message = `browse-client: command \"${cmd}\" failed with status ${resp.status}`;\n      try {\n        const parsed = JSON.parse(text);\n        if (parsed.error) message += `: ${parsed.error}`;\n      } catch {\n        if (text) message += `: ${text.slice(0, 200)}`;\n      }\n      throw new BrowseClientError(message, resp.status, text);\n    }","sourceCodeStart":151,"sourceCodeEnd":187,"githubUrl":"https://github.com/garrytan/gstack/blob/94993f74012782fd94416dd44b8314f6363a13a4/browser-skills/hackernews-frontpage/_lib/browse-client.ts#L151-L187","documentation":"Error \"browse-client: command \"${cmd}\" timed out after ${this.timeoutMs}ms\" thrown in garrytan/gstack.","triggerScenarios":"Thrown at browser-skills/hackernews-frontpage/_lib/browse-client.ts:169 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"}