{"record":{"id":"e53d68bb5ca2abe9","repo":"garrytan/gstack","slug":"cannot-parse-params-as-json-e-message-cause-a","errorCode":null,"errorMessage":"Cannot parse params as JSON: ${e.message}\nCause: argument '${args[1]}' is not valid JSON.\nAction: pass a JSON object literal, e.g. '{\"backendNodeId\":42}'.","messagePattern":"Cannot parse params as JSON: (.+?)\nCause: argument '(.+?)' is not valid JSON\\.\nAction: pass a JSON object literal, e\\.g\\. '(.+?)'\\.","errorType":"exception","errorClass":"Error","httpStatus":null,"severity":"error","filePath":"browse/src/cdp-commands.ts","lineNumber":49,"sourceCode":"      'Usage: $B cdp <Domain.method> [json-params]',\n      '',\n      'Allowed methods are listed in browse/src/cdp-allowlist.ts. To add one,',\n      'open a PR with a one-line justification and the (scope, output) tags.',\n      'Examples:',\n      '  $B cdp Accessibility.getFullAXTree {}',\n      '  $B cdp Performance.getMetrics {}',\n      '  $B cdp DOM.describeNode \\'{\"backendNodeId\":42,\"depth\":3}\\'',\n    ].join('\\n');\n  }\n  const qualified = args[0]!;\n  const { domain, method } = parseQualified(qualified);\n  // Optional second arg is JSON params; default to {}.\n  let params: Record<string, unknown> = {};\n  if (args[1]) {\n    try {\n      params = JSON.parse(args[1]) ?? {};\n    } catch (e: any) {\n      throw new Error(\n        `Cannot parse params as JSON: ${e.message}\\n` +\n          `Cause: argument '${args[1]}' is not valid JSON.\\n` +\n          'Action: pass a JSON object literal, e.g. \\'{\"backendNodeId\":42}\\'.'\n      );\n    }\n  }\n  // Dispatch via the bridge (allowlist + mutex + timeout + finally-release).\n  const tabId = bm.getActiveTabId();\n  const { raw, entry } = await dispatchCdpCall({ domain, method, params, tabId, bm });\n  const json = JSON.stringify(raw, null, 2);\n  if (entry.output === 'untrusted') {\n    return wrapUntrustedContent(json, `cdp:${qualified}`);\n  }\n  return json;\n}\n","sourceCodeStart":31,"sourceCodeEnd":65,"githubUrl":"https://github.com/garrytan/gstack/blob/94993f74012782fd94416dd44b8314f6363a13a4/browse/src/cdp-commands.ts#L31-L65","documentation":"Error \"Cannot parse params as JSON: ${e.message}\nCause: argument '${args[1]}' is not valid JSON.\nAction: pass a JSON object literal, e.g. '{\"backendNodeId\":42}'.\" thrown in garrytan/gstack.","triggerScenarios":"Thrown at browse/src/cdp-commands.ts:49 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"}