mobile-dev-inc / mobile-dev-inc/maestro-docs
Maestro hangs indefinitely on macOS Sequoia 15.0 + Xcode 16.2 - fails to connect to iOS Simulator
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 85
- Forks
- 92
- Avg merge
- 16h 6m
- Merged PRs (30d)
- 1
Description
Is there an existing issue for this?
- I have searched the existing issues and didn't find mine.
Steps to reproduce
1. Create a fresh Expo project:
npx create-expo-app@latest MaestroTest --template blank
cd MaestroTest
2. Build and install on iOS Simulator (iPhone 15, iOS 17.4):
npx expo run:ios
3. Verify the app is installed and running on the simulator
4. Create a minimal Maestro test file:
mkdir -p .maestro
echo 'appId: com.yourname.MaestroTest
---
- launchApp' > .maestro/simple.yaml
5. Run Maestro test:
maestro test .maestro/simple.yaml
6. Observe: Command hangs indefinitely with no output (tested 2+ minutes)
Even simpler - this also hangs:
maestro hierarchy
Test Device: iPhone 15 Simulator (UDID: 8537048C-41D1-4201-ADAB-85F3C1CFC60A)
iOS Version: 17.4
Additional verification:
- Confirmed simulator is booted:
xcrun simctl list devices | grep Booted - Confirmed app is installed:
xcrun simctl listapps booted | grep CFBundleIdentifier - Tested with single simulator only (all others shut down)
- Installed idb-companion 1.1.8 via Homebrew - no change
- Set MAESTRO_DRIVER_STARTUP_TIMEOUT=120000 - no change
Actual results
maestro testandmaestro hierarchycommands hang indefinitely with no output (tested up to 2+ minutes)- Must be manually killed with Ctrl+C
- Maestro Studio desktop app shows "Failed to connect to devices service"
- No devices appear in Maestro Studio's device list
Maestro log (~/.maestro/tests/*/maestro.log) stops after system info and never attempts simulator connection:
12:14:59.905 [ INFO] MAESTRO.logSystemInfo: ---- System Info ----
12:14:59.906 [ INFO] MAESTRO.logSystemInfo: Maestro Version: 2.0.10
12:14:59.907 [ INFO] MAESTRO.logSystemInfo: OS Name: Mac OS X
12:14:59.907 [ INFO] MAESTRO.logSystemInfo: OS Version: 15.0
12:14:59.907 [ INFO] MAESTRO.logSystemInfo: Architecture: aarch64
12:14:59.907 [ INFO] MAESTRO.logSystemInfo: Java Version: 17
12:14:59.979 [ INFO] MAESTRO.logSystemInfo: Xcode Version: 16.2
12:15:00.326 [ INFO] MAESTRO.logSystemInfo: ---------------------
12:15:00.355 [DEBUG] ... Using SLF4J as the default logging framework
Logging stops here - no connection attempt is ever made.
Expected results
Maestro should connect to the iOS Simulator and either:
- Execute the test flow successfully, or
- Display an error message explaining why connection failed
The command should not hang indefinitely with no output.
About app
- Open source reproduction: Fresh Expo project created with
npx create-expo-app@latest MaestroTest --template blank - Cross-platform app: React Native / Expo
- Framework: Expo SDK 52, React Native 0.76.x
- iOS deployment target: iOS 15.1+
Important: This is NOT app-specific. The issue was first observed on a production app, then reproduced with a brand new hello world Expo project to rule out app-specific causes.
About environment
- Machine: Apple Silicon Mac (arm64)
- macOS: Sequoia 15.0 (Darwin 24.0.0)
- Xcode: 16.2 (Build 16C5032a)
- iOS Simulator Runtime: iOS 17.4 (also tested iOS 18.3 - same result)
- Java: OpenJDK 17.0.17 (Zulu17)
openjdk version "17.0.17" 2025-10-21 LTS OpenJDK Runtime Environment Zulu17.62+17-CA (build 17.0.17+10-LTS) OpenJDK 64-Bit Server VM Zulu17.62+17-CA (build 17.0.17+10-LTS, mixed mode, sharing) - idb-companion: 1.1.8 (installed via Homebrew, built Aug 2022)
Logs
Maestro Log
12:14:59.904 [ INFO] maestro.cli.report.TestDebugReporter.logSystemInfo: Debug output path: /Users/franziskus/.maestro/tests/2025-12-24_121459
12:14:59.905 [ INFO] MAESTRO.logSystemInfo: ---- System Info ----
12:14:59.906 [ INFO] MAESTRO.logSystemInfo: Maestro Version: 2.0.10
12:14:59.906 [ INFO] MAESTRO.logSystemInfo: CI: Undefined
12:14:59.907 [ INFO] MAESTRO.logSystemInfo: OS Name: Mac OS X
12:14:59.907 [ INFO] MAESTRO.logSystemInfo: OS Version: 15.0
12:14:59.907 [ INFO] MAESTRO.logSystemInfo: Architecture: aarch64
12:14:59.907 [ INFO] MAESTRO.logSystemInfo: Java Version: 17
12:14:59.979 [ INFO] MAESTRO.logSystemInfo: Xcode Version: 16.2
12:15:00.182 [ INFO] MAESTRO.logSystemInfo: Flutter Version: 3.38.1
12:15:00.326 [ INFO] MAESTRO.logSystemInfo: Flutter Channel: stable
12:15:00.326 [ INFO] MAESTRO.logSystemInfo: ---------------------
12:15:00.355 [DEBUG] io.micrometer.common.util.internal.logging.InternalLoggerFactory.newDefaultFactory: Using SLF4J as the default logging framework
Log ends here - process hangs with no further output.
idb_companion output when started manually
IDB Companion Built at Aug 12 2022 08:41:50
IDB Companion architecture arm64
Providing targets across Simulator and Device sets.
CoreSimulator: Loading from /Library/Developer/PrivateFrameworks/CoreSimulator.framework
CoreSimulator: Successfully loaded
Starting swift server on tcp port 10882
Swift server started on [IPv6]::/:::10882
{"grpc_swift_port":10882,"grpc_port":10882}
Companion will stay alive if target goes offline
idb starts successfully but Maestro still cannot connect.
Simulator verification commands
$ xcrun simctl list devices | grep Booted
iPhone 15 (8537048C-41D1-4201-ADAB-85F3C1CFC60A) (Booted)
$ xcrun simctl listapps booted | grep CFBundleIdentifier | grep -i maestro
CFBundleIdentifier = "com.franziskus.MaestroTest";
$ xcrun simctl getenv booted SIMULATOR_RUNTIME_VERSION
17.4
Maestro version
2.0.10
How did you install Maestro?
install script (https://get.maestro.mobile.dev)
Anything else?
- mobile-dev-inc/Maestro#2628 - Similar symptoms, closed as "app-specific." However, this report proves it's NOT app-specific since a fresh Expo project also fails.
- mobile-dev-inc/Maestro#2559 - iOS testing doesn't work (was resolved by Java upgrade - not applicable here, Java 17 is installed)
- mobile-dev-inc/Maestro#2422 - Swipe command fails on Xcode 16.2
Hypothesis:
The combination of macOS Sequoia 15.0 + Xcode 16.2 breaks Maestro's iOS device detection/connection layer. The failure occurs before any test execution - Maestro cannot establish initial communication with the simulator.
Note about idb-companion:
The installed version (1.1.8) was built in August 2022 - significantly before Xcode 16 and macOS Sequoia were released. This may be a contributing factor.
Workarounds attempted (none successful):
- Installing idb-companion
- Starting idb manually with explicit UDID
- Testing with single simulator only
- Setting MAESTRO_DRIVER_STARTUP_TIMEOUT environment variable
- Testing with both iOS 17.4 and iOS 18.3 runtimes
- Testing with both dev and release builds
Impact:
Complete loss of iOS E2E testing capability on macOS Sequoia + Xcode 16.2.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reproducing the hang with maestro test .maestro/simple.yaml and maestro hierarchy on the stated macOS, Xcode, and simulator setup. Then trace the iOS device detection and connection entry point using the provided Maestro log and idb-companion output. Done means Maestro connects to the simulator or reports a useful error instead of hanging indefinitely.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ios, java, macos, react-native
- Domain
- mobile-dev, testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100