Skip to content
All studies

The action succeeded. The reply vanished. What happens next?

A continuation and replay reference for the awkward moment when an agent cannot tell whether a tool finished its work.

Demonstrated

The reference makes completed work recoverable after a lost reply. A retry can recover the recorded result instead of blindly creating another issue.

In practice

A lost reply means unknown, not failed. Ask the system of record before retrying anything with side effects.

Why this question matters

A missing reply leaves an agent with an awkward choice: retry and risk doing the work twice, or stop without knowing whether it finished. That uncertainty is the problem this project takes on.

What I built

A SQLite-backed execution record and lost-reply recovery path, exercised through the MCP SDK over stdio with a synthetic issue-creation tool.

System sketch, not a live run.

create_guarded_issueAgenthas resultToolno new writeExecution recordSQLitecase-next-resultappliedreply lostget_operation_statusreturn_stored_resultIssues created1Still 1. No second issue.

Stored result returned

Recover the result.

After a restart, the agent calls get_operation_status with the same operation_id. The answer is return_stored_result, and nothing runs again.

A design choice

A retry reuses the original operation ID, and a status read never authorises a fresh write. The easier design gives each attempt a new ID. The repository keeps a deliberately unsafe control that does exactly that, and it creates a second issue. The price of refusing it: when the record cannot settle what happened, the outcome stays unknown instead of being guessed.

What the work shows

Annotated summary of the public evidence, not a live run or raw transcript.
Interruption
After commitThe fixture crashes after the work has been recorded.
Recovery
Status readbackThe restarted caller uses the same operation identity.
Database assertion
1 physical issueThe test checks that recovery has not created a second issue.

Inspect the evidence

Where the evidence stops

This is one bounded tool and recovery scenario. It is not a production guarantee for arbitrary MCP tools or external side effects.

Read the repository