Repository navigation
Closed
Labels
enhancementNew feature or requestNew feature or requestneeds-infoWaiting on reporter or external inputWaiting on reporter or external input
Description
Problem
A customer running agent-device against an EAS-hosted remote iOS simulator reported that record stop timed out client-side after 90 seconds while the daemon continued exporting. The recording eventually became available, but they could not find a CLI command to retrieve it and fetched it manually through the daemon's /artifacts endpoint.
This leaves an agent unable to finish retrieving its recording through the normal CLI workflow even though the export succeeds.
Environment and evidence
- Remote iOS simulator on EAS Simulator.
- Version baseline for this report: 0.20.10; exact client/daemon versions and recording options still need confirmation from the reporter.
- Customer-reported observation, not independently reproduced by us. The exact timeout transcript, session ID, export duration, and a minimal reproduction are not yet available. The customer has offered transcripts and diagnostics.
- We have not established which layer owns the 90-second timeout.
Requested behavior
- Distinguish a failed export from an export that is still running when the client stops waiting.
- Provide a supported CLI recovery path to inspect export status and retrieve the completed daemon-managed recording after the original request times out, without starting another recording or manually calling HTTP endpoints.
- Give actionable recovery information in the timeout response, including a stable recording/export identifier if needed.
- Preserve normal session/tenant ownership checks on retrieval.
The exact command shape is open. The existing documented artifacts command lists provider-hosted artifacts (for example BrowserStack/AWS Device Farm); this request concerns a recording exported by the remote agent-device daemon.
Related work
- Support session-scoped runtime hints and remote artifact retrieval in native remote daemon mode #197 covered normal remote artifact retrieval; this is specifically recovery after the original export request times out.
- iOS sim: ungraceful recorder kill leaves CoreSimulator host recording lock dangling (code 16 for all later recordings) #2170 concerns a host recording lock after an ungraceful recorder kill. Here the daemon reportedly kept exporting and produced an artifact, so this is not known to be the same mechanism.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestneeds-infoWaiting on reporter or external inputWaiting on reporter or external input
Activity
thymikee commentedon Sep 4, 2026
This is a valid recovery gap, but we need the customer evidence before locking the owner and API. Please attach the exact client and daemon versions, full
record start/record stopoptions, the timeout response including diagnostic ID and log path, session ID and timestamps, the daemon request log around export completion, and the resulting artifact metadata/path. Please also confirm whether the client and daemon were on the same version. With that, we can distinguish timeout/progress handling from a durable export-operation/recovery contract.thymikee commentedon Oct 2, 2026
Closing as implemented, not as stale. #2534 (merged 2026-09-13,
fix(record): replay the finished export from a retried record stop) closes exactly the gap reported here: a repeatedrecord stopnow serves the finished export from the durable manifest, including the caller-side paths that make it downloadable.src/commands/schema/cli-help.tsdocuments thatrecord stopis safe to repeat after its request window ended, and the timeout hint insrc/daemon-client/daemon-client-timeout.tsnames the retry.No customer evidence ever arrived, so the timeout-progress shape stays unmeasured; if a customer still cannot recover a completed export on a current version, reopen with the transcript.
fix(daemon): keep a recording downloadable when its lease ends (#3955)