-
-
Notifications
You must be signed in to change notification settings - Fork 80.7k
@openclaw/lobster tool run/resume misroutes schema default flowExpectedRevision into TaskFlow mode #102011
Copy link
Copy link
Closed
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:queueable-fixClawSweeper marked this issue as an existing queue_fix_pr work candidate.ClawSweeper marked this issue as an existing queue_fix_pr work candidate.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:otherThis issue has meaningful maintainer-visible impact outside the owned taxonomy.This issue has meaningful maintainer-visible impact outside the owned taxonomy.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.no-staleExclude from stale automationExclude from stale automation
Description
Metadata
Metadata
Assignees
Labels
P2Normal backlog priority with limited blast radius.Normal backlog priority with limited blast radius.clawsweeper:fix-shape-clearClawSweeper found a clear likely implementation shape for this issue.ClawSweeper found a clear likely implementation shape for this issue.clawsweeper:queueable-fixClawSweeper marked this issue as an existing queue_fix_pr work candidate.ClawSweeper marked this issue as an existing queue_fix_pr work candidate.clawsweeper:source-reproClawSweeper found a high-confidence source-level issue reproduction.ClawSweeper found a high-confidence source-level issue reproduction.impact:otherThis issue has meaningful maintainer-visible impact outside the owned taxonomy.This issue has meaningful maintainer-visible impact outside the owned taxonomy.issue-rating: 🦞 diamond lobsterVery strong issue quality with high-confidence source-level or clear reproduction.Very strong issue quality with high-confidence source-level or clear reproduction.no-staleExclude from stale automationExclude from stale automation
Type
Fields
Priority
None yet
Summary
The
@openclaw/lobsterplugin tool appears to misroute ordinaryrun/resumecalls into the managed TaskFlow parameter path when the OpenClaw tool schema injects default flow fields.This makes the documented minimal tool calls fail unless the wrapper treats schema default values as absent.
Environment
@openclaw/lobster2026.6.11@clawdbot/lobster2026.5.22openclaw plugins install clawhub:@openclaw/lobster~/.openclaw/extensions/lobster/dist/index.jsDocs expectation
The docs show ordinary embedded tool use as:
{ "action": "run", "pipeline": "workflows/example.lobster", "argsJson": "{...}", "cwd": "...", "timeoutMs": 30000 }And resume as:
{ "action": "resume", "token": "...", "approve": true }No
flowIdorflowExpectedRevisionis required for these ordinary Lobster approval workflows.Actual behavior
Calling the
lobstertool through OpenClaw with a normalrunfailed with:After patching
run, calling ordinaryresumefailed similarly because the schema defaultflowExpectedRevision=0caused the wrapper to parse it as a managed flow resume.The standalone Lobster CLI worked for the same workflow and correctly produced
needs_approval/resumeToken, so the issue appears to be in the OpenClaw plugin wrapper/tool-schema interaction rather than in the Lobster core runtime.Minimal reproduction shape
@openclaw/lobster.lobstertool.runrejected becauseflowExpectedRevisionis present even though the caller did not intend TaskFlow mode.runis patched, ordinaryresumecan hit the same issue.A workflow file with a standard approval step is enough:
Local workaround tested
I locally patched
~/.openclaw/extensions/lobster/dist/index.jsso that schema default/empty flow fields are treated as absent for ordinaryrun/resumecalls.The essence of the workaround:
parseOptionalFlowStateJson("")andparseOptionalFlowStateJson("{}")returnundefined.parseRunFlowParams, ignoreflowExpectedRevisionunlessflowIdis present.parseResumeFlowParams, ignoreflowExpectedRevisionunlessflowIdis present.flowStateJsonconsistently before deciding whether it was really provided.After this local patch and a real gateway process restart:
runsuccessfully returnedstatus: "needs_approval".resume approvesuccessfully continued the workflow.Expected fix
The plugin wrapper should distinguish between:
Ordinary Lobster
run/resumeshould not be rejected simply becauseflowExpectedRevisionappears with a default value such as0whileflowIdis absent.Notes
This is especially easy to hit from agent tool calls because the tool schema includes flow fields for both modes in one tool surface.