{"record":{"id":"f6933c4f3481d738","repo":"Hmbown/CodeWhale","slug":"trajectory-action-must-be-start-stop-status-or-replay-got","errorCode":null,"errorMessage":"trajectory action must be start, stop, status or replay (got ${JSON.stringify(args.action)})","messagePattern":"trajectory action must be start, stop, status or replay \\(got (.+?)\\)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/tui/plugins/computer-use/src/tools.mjs","lineNumber":867,"sourceCode":"        case \"type\":\n          if (typeof rest.text !== \"string\" || !rest.text.length) throw bad('browser action \"type\" requires text');\n          return { name: \"browser_type\", args: rest };\n        case \"screenshot\": return { name: \"browser_screenshot\", args: rest };\n        case \"stop\": return { name: \"browser_stop\", args: rest };\n        default:\n          throw bad(`browser action must be start, status, navigate, click, type, screenshot or stop (got ${JSON.stringify(args.action)})`);\n      }\n    }\n    case \"trajectory\": {\n      const rest = { ...args };\n      delete rest.action;\n      switch (args.action) {\n        case \"start\": return { name: \"trajectory_start\", args: rest };\n        case \"stop\": return { name: \"trajectory_stop\", args: rest };\n        case \"status\": return { name: \"trajectory_status\", args: rest };\n        case \"replay\": return { name: \"trajectory_replay\", args: rest };\n        default:\n          throw bad(`trajectory action must be start, stop, status or replay (got ${JSON.stringify(args.action)})`);\n      }\n    }\n    default:\n      return { name, args };\n  }\n}\n","sourceCodeStart":849,"sourceCodeEnd":874,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/73e0f67d83c59909b571efdfc88c4bc28c309cb1/crates/tui/plugins/computer-use/src/tools.mjs#L849-L874","documentation":"Argument-validation guard in resolveTool for the 'trajectory' action: args.action matched none of start/stop/status/replay, so no trajectory wire command could be resolved. The offending action value is included in the message.","triggerScenarios":"Thrown at crates/tui/plugins/computer-use/src/tools.mjs:867 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Check the action field sent on the trajectory call: only start, stop, status and replay are accepted; fix the typo or unsupported verb and resend.","Log or print args.action at the call site to see the exact rejected value — the message embeds its JSON serialization for this reason.","If you need a new trajectory verb, extend the switch in resolveTool with an explicit case that maps to a concrete tool name instead of relying on the fallback error."],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"73e0f67d83c59909b571efdfc88c4bc28c309cb1","analyzedAt":"2026-09-22T01:30:00.501Z","contentChangedAt":"2026-09-22T01:30:00.501Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}