Skip to content

Remote iOS recording: recover completed export after record stop times out #2281

Description

@brentvatne

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

Activity

  1. thymikee commented on Sep 4, 2026

    @thymikee
    Member

    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 stop options, 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.

  2. thymikee commented on Oct 2, 2026

    @thymikee
    Member

    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 repeated record stop now serves the finished export from the durable manifest, including the caller-side paths that make it downloadable. src/commands/schema/cli-help.ts documents that record stop is safe to repeat after its request window ended, and the timeout hint in src/daemon-client/daemon-client-timeout.ts names 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestneeds-infoWaiting on reporter or external input

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions