This documentation is available as Markdown for AI agents and LLMs. See the full Markdown index or append .md to any documentation URL.

How long an Expo Simulators session runs

Edit page

Learn the maximum duration and idle timeout of an Expo Simulators session, which activity keeps a session alive, and every way that a session stops.


An Expo Simulators session runs until you stop it or until it reaches a limit. The maximum duration is a hard stop time. The optional idle timeout stops the session after a period without controller activity. Set a limit on each session that you do not watch, so that it does not run longer than you need.

Maximum duration

AccountMaximum durationDefault duration
Free plan40 minutes40 minutes
Paid plans115 minutes115 minutes

If you do not set a duration, the session gets the maximum for the account. On any plan, you can set a shorter duration: pass --max-duration-minutes to EAS CLI or maxDurationMinutes to the REST API. A value above the account's maximum fails.

The session timer starts when the session is ready. The job that runs the session has a hard limit of the maximum duration plus five minutes.

Idle timeout

Pass --max-idle-time-minutes to stop the session after that many minutes without controller activity. Without this flag, the session has no idle timeout.

RuleDetail
Activity that resets the timerController activity from agent-device, Argent, or Appium
Activity that does not reset the timerUse of the browser preview
Session types without idle timeoutweb-preview-only
Allowed valuesA positive number smaller than the session's maximum duration: the value of --max-duration-minutes, or the plan limit when you do not set one.

For a session that a person uses in the browser preview, limit the session with the maximum duration. The idle timeout can stop the session while the person uses it.

Ways that a session stops

EventResult
You run eas simulator:stop or the REST stop endpointThe session stops. Stopping a stopped session also succeeds.
You press Ctrl + C in an attached simulator:startThe session stops, and EAS CLI resets .env.eas-simulator.
You press Stop session on the session pageThe session stops.
The egress client in an interactive simulator:start exits with an errorEAS CLI stops the session.
The session reaches its maximum durationThe session stops.
The session reaches its idle timeoutThe session stops.
The startup timeout of EAS CLI expiresEAS CLI stops the session.
The user who started the session is deletedEAS stops the session.
The job failsThe session goes to errored.

These events do not stop a session:

  • A --non-interactive or --json start command returns.
  • A CI job, an HTTP request, or an agent task ends.
  • A second simulator:start replaces .env.eas-simulator.
  • The local egress client disconnects. Proxied requests fail, and the session continues to run.

Dropped controller connections

If a controller command returns ERR_NGROK_3200 or Remote daemon is unavailable after the session sat idle, the controller connection dropped. A lost connection also removes the installed app state and the snapshot references. Do not retry the command. Stop the session, start a new one, and then install and drive the app immediately. Create builds before you start the session, not during it.

Common questions

How do I keep a session alive for a reviewer?

Start the session with --max-duration-minutes set to the review time, and do not set an idle timeout. Tell the reviewer when the session stops. See Share a live Expo Simulators session or start one from a link.

Can I extend a running session?

No. EAS CLI and the REST API do not have a command to change the duration of a running session. Start a new session.

Does queue time count toward the duration?

No. The maximum duration starts when the session is ready, so queue time does not count toward it. Queue time also does not count toward the 15-minute startup timeout of EAS CLI. For usage, see Expo Simulators usage, limits, and billing.