JuliusBrussee/caveman · error
unknown action: %s
Error message
unknown action: %s
What it means
Error "unknown action: %s" thrown in JuliusBrussee/caveman.
Source
Thrown at browse/cdp.go:220
option = req.Text
}
if option == "" {
return ActionResult{OK: false, Settled: false}, errors.New("select: missing option")
}
if err := d.callOnNode(runCtx, target, fmt.Sprintf(`function(){ const wanted = %s; const options = Array.from(this.options || []); const match = options.find(o => o.value === wanted || o.label === wanted || o.textContent.trim() === wanted); if (!match) { throw new Error("option not found"); } this.value = match.value; this.dispatchEvent(new Event("input", {bubbles:true})); this.dispatchEvent(new Event("change", {bubbles:true})); return true; }`, jsString(option))); err != nil {
return ActionResult{OK: false, Settled: false}, err
}
return dispatchedAction(), nil
case "scroll":
if err := d.scrollIntoView(runCtx, target); err != nil {
return ActionResult{OK: false, Settled: false}, err
}
if _, _, err := d.waitActionable(runCtx, target); err != nil {
return ActionResult{OK: false, Settled: false}, err
}
return dispatchedAction(), nil
default:
return ActionResult{OK: false, Settled: false}, fmt.Errorf("unknown action: %s", req.Action)
}
}
func dispatchedAction() ActionResult {
// CDP acknowledged dispatch, but asynchronous application state may still be
// changing. Claiming settled=true here made agents trust an unverified result.
// A focused browser_snapshot is the cheap, evidence-bearing verification step.
return ActionResult{OK: true, Settled: false, Note: "dispatched; resnapshot to verify"}
}
func (d *CDPDriver) scrollIntoView(ctx context.Context, target Target) error {
return d.callOnNode(ctx, target, `function(){ this.scrollIntoView({block:"center", inline:"center", behavior:"instant"}); return true; }`)
}
// Shutdown closes the attached browser process. Ordinary Close only releases
// this driver context; direct CLI mode deliberately leaves its detached Chrome
// alive between snapshot and act commands until `browse close` calls Shutdown.
func (d *CDPDriver) Shutdown(ctx context.Context) error {View on GitHub (pinned to 27d5a3981a)
Solutions
- Use a supported browse action name.
When it happens
Trigger: Thrown at browse/cdp.go:220 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of JuliusBrussee/caveman@27d5a3981a (2026-08-15).
Data as JSON: /api/errors/0750cd03b5fa7d0f.
Report an issue: GitHub.