Skip to main content
← Back to list
01Issue
BugShippedSwamp CLIPublicTeam
Assigneeszack

Relationships

#3080 serve --remote-only: step output from workers is never persisted to the run log (history logs always empty)

Opened by randybias · 10/6/2026· Shipped 10/7/2026

Summary

With swamp serve --remote-only, step output is never written to the run's log. swamp workflow history logs <runId> --server ... returns "Log file not found or empty" for every run, and the dashboard shows no step output once the live stream ends. Operators lose all run output.

Versions

swamp serve, CLI and worker 20261003.192630.0-sha.bed0772a. Source unchanged in this respect at v20261006.152703.0-sha.5ba0b8fc.

Evidence

  • swamp workflow history logs <run> for any run: Log file not found or empty: .swamp/workflow-runs/<wf>/workflow-run-<id>.log.
  • On serve's volume, 3401 run .log files exist under .swamp/workflow-runs/. The newest ones are 0 bytes.
  • The worker's cache dir and journal hold no method output.

Cause (read in source at bed0772a)

  • execution_service.ts:3027-3041 opens the run log through runFileSink.register. run_file_sink.ts:178-190 and logger.ts:293-303 accept only [HOST-1] and workflow.run records that carry swampRunId.
  • A remote step's method logger has category ["worker","method-context"] and no runId (remote_method_context.ts:63,595). Its lines travel to serve as runner.event output events (exec_dispatch.ts:213-217) and become method_output (method_execution_service.ts:458-461). From there they reach only the in-memory RunEventBuffer (serve/run_event_buffer.ts). Nothing writes them to LogTape or to disk.
  • DispatchResult.logs (exec_dispatch.ts:221-237) is dropped: method_execution_service.ts:920-930 reads only outputs and workerName.

Expected

Serve writes each output event from a worker, and DispatchResult.logs, through the run logger at the event's level. A remote run's log then matches a local run's log, and history logs and the dashboard show it after the run ends.

02Bog Flow
✓OPEN✓TRIAGED✓IN PROGRESS✓SHIPPED+ 1 MOREASSIGNED+ 5 MOREREVIEW+ 12 MOREPR_MERGED+ 2 MORESESSION_SUMMARIZED

Shipped

10/7/2026, 5:46:28 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
zack assigned zack10/7/2026, 3:16:06 PM
Editable. Press Enter to edit.

zack commented 10/7/2026, 5:46:30 PM

Thanks @randybias for reporting this! We shipped: Serve writes each output line a remote worker streams back, and the worker console capture, through the run logger so the run log of a remote step matches a local one. The write happens in MethodExecutionService executeRemotely, which workflow steps and direct model method runs share, and validates the worker-supplied event first.. The fix has been merged and a release is on its way. We appreciate your contribution to swamp.

Sign in to post a ripple.