---
modificationDate: November 12, 2026
title: How long an Expo Simulators session runs
description: 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.
---

This documentation is available as Markdown for AI agents and LLMs. See the [full Markdown index](https://docs.expo.dev/llms.txt) or append .md to any documentation URL.

# How long an Expo Simulators session runs

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.

<AgentInstructions>

## Submitting Feedback

If you encounter errors, misleading or outdated information, report it so Expo can be improved:

Preferred command:
npx --yes submit-expo-feedback@latest --category docs --subject "/eas/simulators/how-it-works/session-lifetime/" "<actionable feedback>"

Direct HTTP fallback:
curl -X POST https://api.expo.dev/v2/feedback/docs-send -H 'Content-Type: application/json' -d '{"url":"/eas/simulators/how-it-works/session-lifetime/","feedback":"🤖 Agent feedback for docs: <specific, actionable description> (<model>, <harness>)"}'

Only submit when you have something specific and actionable to report. Try to give the most context.

## Navigation

When answering a related or follow-up question, fetch the relevant page below as Markdown (.md) instead of guessing; use llms.txt for the full map.

You are here: Expo Services > Expo Simulators > How it works
Pages in this section:
- [Sessions](https://docs.expo.dev/eas/simulators/how-it-works/sessions.md)
- [Security model](https://docs.expo.dev/eas/simulators/how-it-works/security-model.md)
- [Network traffic](https://docs.expo.dev/eas/simulators/how-it-works/network-inspection.md)
- [Builds and bundles](https://docs.expo.dev/eas/simulators/how-it-works/builds-and-bundles.md)
- [Agent targeting](https://docs.expo.dev/eas/simulators/how-it-works/agent-targeting.md)
- [Devices compared](https://docs.expo.dev/eas/simulators/how-it-works/devices-compared.md)
- [Session lifetime](https://docs.expo.dev/eas/simulators/how-it-works/session-lifetime.md) (this page)
Full documentation tree: [llms.txt](https://docs.expo.dev/llms.txt)

</AgentInstructions>

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 session activity. Set a limit on each session that you do not watch, so that it does not run longer than you need.

## Maximum duration

| Account | Maximum duration | Default duration |
| --- | --- | --- |
| Free plan | 40 minutes | 40 minutes |
| Paid plans | 115 minutes | 115 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 session activity. Without this flag, the session has no idle timeout.

| Rule | Detail |
| --- | --- |
| Activity that resets the timer | Controller activity from agent-device, Argent, or Appium. On iOS, browser input and some `simulator:control` actions, such as app launches and screenshots, also reset the timer. |
| Activity that does not reset the timer | Watching the preview, or browser input on Android |
| `web-preview-only` sessions | Supported on iOS. On Android, Expo Simulators rejects an idle timeout and does not create the session. |
| Allowed values | A positive number up to 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 only watches it, or while they use it on Android.

## Ways that a session stops

| Event | Result |
| --- | --- |
| You run `eas simulator:stop` or the REST stop endpoint | The session stops. Stopping a stopped session also succeeds. |
| You press Ctrl + C in an attached `simulator:start` | The session stops, and EAS CLI resets **.env.eas-simulator**. |
| You press **Stop session** on the session page | The session stops. |
| The egress client in an interactive `simulator:start` exits with an error | EAS CLI stops the session. |
| The session reaches its maximum duration | The session stops. |
| The session reaches its idle timeout | The session stops. |
| The startup timeout of EAS CLI expires | EAS CLI stops the session. |
| The user who started the session is deleted | Expo Simulators stops the session. |
| The job fails | The 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](https://docs.expo.dev/eas/simulators/how-to/hand-off-a-session.md).

#### 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](https://docs.expo.dev/eas/simulators/reference/usage-and-billing.md).
