-
-
Notifications
You must be signed in to change notification settings - Fork 79.1k
[Bug]: bug(gateway): offloadedRefs metadata lost in transcript for iOS share/node path #60339
Copy link
Copy link
Open
Labels
P1High-priority user-facing bug, regression, or broken workflow.High-priority user-facing bug, regression, or broken workflow.bugSomething isn't workingSomething isn't workingclawsweeper: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:data-lossCan lose, corrupt, or silently drop user/session/config data.Can lose, corrupt, or silently drop user/session/config data.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.Session, memory, transcript, context, or agent state can drift or corrupt.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.
Metadata
Metadata
Assignees
Labels
P1High-priority user-facing bug, regression, or broken workflow.High-priority user-facing bug, regression, or broken workflow.bugSomething isn't workingSomething isn't workingclawsweeper: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:data-lossCan lose, corrupt, or silently drop user/session/config data.Can lose, corrupt, or silently drop user/session/config data.impact:session-stateSession, memory, transcript, context, or agent state can drift or corrupt.Session, memory, transcript, context, or agent state can drift or corrupt.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.
Type
Fields
Give feedbackNo fields configured for issues without a type.
Bug type
Regression (worked before, now fails)
Beta release blocker
No
Summary
Metadata in parsed.offloadedRefs is not persisted to JSONL transcript for iOS share/node path, causing media to be unresolvable in history.
Steps to reproduce
1.Send a large image attachment (e.g., >1MB) via the iOS Share extension or the Node gateway path.
2.Observe that the file is correctly offloaded to the local store (Claim Check logic triggers).
3.Check the resulting session transcript (.jsonl file) in the storage directory.
4.Observe the specific message entry.
Expected behavior
The transcript entry should contain the offloaded media IDs in the "MediaPath" or "MediaPaths" fields, similar to web-upload behavior.
Actual behavior
The "MediaPath" / "MediaPaths" fields are empty or missing. The metadata in "offloadedRefs" is discarded after parsing, making the media orphaned in session history.
OpenClaw version
v2026.4.1
Operating system
iOS / Ubuntu 24.04 (WSL2)
Install method
npm global / pnpm dev
Model
deepseek-v3.2
Provider / routing chain
openclaw -> deepseek-api
Additional provider/model setup details
Found this while investigating the WSL2 keyring deadlock (#60278). The attachment pipeline is functioning, but the persistence layer for node-events is missing the link to media refs.
Logs, screenshots, and evidence
Impact and severity
Affected: Users sending attachments via iOS share or node-based integrations.
Severity: High (Data loss in history).
Frequency: 4/4 observed attempts.
Consequence: Downstream agents cannot "see" the images in previous messages during multi-turn conversations.
Additional information
Root cause seems to be the lack of a 'persistChatSendImages' implementation in 'src/gateway/server-node-events.ts' for handling the 'parsed.offloadedRefs' metadata returned by the attachment parser.