eas-cli icon indicating copy to clipboard operation
eas-cli copied to clipboard

[Maestro] iOS simulator stuck on maestro tests on Expo

Open BohdanPylypchuk opened this issue 4 months ago • 9 comments

Build/Submit details page URL

No response

Summary

I have the EAS workflow for e2e Maestro tests, and the same for Android. Android works as expected, but iOS fails. A simulator gets stuck and then crashes. It worked fine before updating to the Expo 53 + new architecture

`name: e2e-test-ios

on: pull_request_labeled: labels: - e2e

jobs: build_ios_for_e2e: type: build params: platform: ios profile: e2e-test # your eas build profile for E2E test

maestro_test: needs: [build_ios_for_e2e] type: maestro params: build_id: ${{ needs.build_ios_for_e2e.outputs.build_id }} flow_path: ['./.maestro/flows/']`

Managed or bare?

bare

Environment

expo-env-info 1.3.4 environment info: System: OS: macOS 15.5 Shell: 5.9 - /bin/zsh Binaries: Node: 18.18.2 - ~/.nvm/versions/node/v18.18.2/bin/node Yarn: 1.22.19 - /opt/homebrew/bin/yarn npm: 9.8.1 - ~/.nvm/versions/node/v18.18.2/bin/npm Watchman: 2025.05.26.00 - /opt/homebrew/bin/watchman Managers: CocoaPods: 1.16.2 - /opt/homebrew/lib/ruby/gems/3.4.0/bin/pod SDKs: iOS SDK: Platforms: DriverKit 24.5, iOS 18.5, macOS 15.5, tvOS 18.5, visionOS 2.5, watchOS 11.5 IDEs: Android Studio: 2024.1 AI-241.15989.150.2411.11948838 Xcode: 16.4/16F6 - /usr/bin/xcodebuild npmPackages: expo: ^53.0.20 => 53.0.20 expo-updates: ~0.28.17 => 0.28.17 react: 19.0.0 => 19.0.0 react-native: 0.79.5 => 0.79.5 npmGlobalPackages: eas-cli: 16.10.0 Expo Workflow: bare

Error output

06:03:56.568 [ INFO] device.IOSDevice.invoke-F9mIFpk: Waiting for animation to end with timeout 3000 06:03:56.745 [ INFO] ios.xctest.XCTestIOSDevice.isScreenStatic$lambda$15: Screen diff request finished with isScreenStatic = true 06:03:56.819 [ INFO] device.IOSDevice.waitUntilScreenIsStatic$lambda$54$lambda$53: screen static = true 06:03:56.942 [ INFO] maestro.Maestro.tap-BUbHBYE: Refreshed element 06:03:56.942 [ INFO] maestro.Maestro.screenshotBasedTap-hbl3e4M: Tapping at (196, 265) using screenshot based logic for wait 06:03:57.367 [ INFO] device.IOSDevice.invoke-F9mIFpk: Waiting for animation to end with timeout 3000 06:03:57.865 [ INFO] ios.xctest.XCTestIOSDevice.isScreenStatic$lambda$15: Screen diff request finished with isScreenStatic = false 06:03:57.865 [ INFO] device.IOSDevice.waitUntilScreenIsStatic$lambda$54$lambda$53: screen static = false 06:03:58.151 [ INFO] ios.xctest.XCTestIOSDevice.isScreenStatic$lambda$15: Screen diff request finished with isScreenStatic = true 06:03:58.152 [ INFO] device.IOSDevice.waitUntilScreenIsStatic$lambda$54$lambda$53: screen static = true 06:03:58.152 [ INFO] maestro.Maestro.screenshotBasedTap-hbl3e4M: Something has changed in the UI judging by view hierarchy. Proceed. 06:03:58.154 [ INFO] maestro.cli.runner.MaestroCommandRunner.runCommands$lambda$2: Tap on "Email" COMPLETED 06:03:58.154 [ INFO] maestro.cli.runner.MaestroCommandRunner.runCommands$lambda$0: Input text [email protected] RUNNING 06:03:58.154 [ INFO] maestro.cli.runner.MaestroCommandRunner.runCommands$lambda$11: Input text [email protected] metadata CommandMetadata(numberOfRuns=null, evaluatedCommand=MaestroCommand(inputTextCommand=InputTextCommand([email protected], label=null, optional=false)), logMessages=[], insight=Insight(message=, level=NONE), aiReasoning=null, labeledCommand=null) 06:03:58.155 [ INFO] maestro.Maestro.inputText: Inputting text: [email protected] 06:05:31.085 [ INFO] maestro.Maestro.takeScreenshot: Taking screenshot 06:05:31.086 [TRACE] maestro.utils.ScreenshotUtils.takeScreenshot: Taking screenshot to output sink 06:05:31.088 [ERROR] maestro.orchestra.Orchestra.executeCommands: [Command execution] CommandFailed: Failed to connect to /127.0.0.1:7001 06:05:31.088 [ INFO] maestro.Maestro.takeScreenshot: Taking screenshot 06:05:31.088 [TRACE] maestro.utils.ScreenshotUtils.takeScreenshot: Taking screenshot to output sink 06:05:31.090 [ERROR] maestro.cli.runner.TestRunner.runCatching-ta8aW1Q: Failed to run flow java.net.ConnectException: Failed to connect to /127.0.0.1:7001 at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:297) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154) ~[okhttp-4.12.0.jar:?] at xcuitest.XCTestDriverClient.executeJsonRequest(XCTestDriverClient.kt:227) ~[maestro-ios-driver.jar:?] at xcuitest.XCTestDriverClient.inputText(XCTestDriverClient.kt:135) ~[maestro-ios-driver.jar:?] at ios.xctest.XCTestIOSDevice.input$lambda$8(XCTestIOSDevice.kt:120) ~[maestro-ios.jar:?] at ios.xctest.XCTestIOSDevice.execute(XCTestIOSDevice.kt:235) ~[maestro-ios.jar:?] at ios.xctest.XCTestIOSDevice.input(XCTestIOSDevice.kt:118) ~[maestro-ios.jar:?] at ios.LocalIOSDevice.input(LocalIOSDevice.kt:84) ~[maestro-ios.jar:?] at maestro.drivers.IOSDriver.inputText$lambda$41$lambda$40(IOSDriver.kt:431) ~[maestro-client.jar:?] at maestro.drivers.IOSDriver.runDeviceCall(IOSDriver.kt:547) ~[maestro-client.jar:?] at maestro.drivers.IOSDriver.inputText$lambda$41(IOSDriver.kt:431) ~[maestro-client.jar:?] at maestro.utils.Metrics.measured(Metrics.kt:48) ~[maestro-utils.jar:?] at maestro.drivers.IOSDriver.inputText(IOSDriver.kt:430) ~[maestro-client.jar:?] at maestro.Maestro.inputText(Maestro.kt:465) ~[maestro-client.jar:?] at maestro.orchestra.Orchestra.inputTextCommand(Orchestra.kt:1035) ~[maestro-orchestra.jar:?] at maestro.orchestra.Orchestra.executeCommand(Orchestra.kt:345) ~[maestro-orchestra.jar:?] at maestro.orchestra.Orchestra.executeSubflowCommands(Orchestra.kt:872) ~[maestro-orchestra.jar:?] at maestro.orchestra.Orchestra.runSubFlow(Orchestra.kt:929) ~[maestro-orchestra.jar:?] at maestro.orchestra.Orchestra.runFlowCommand(Orchestra.kt:771) ~[maestro-orchestra.jar:?] at maestro.orchestra.Orchestra.executeCommand(Orchestra.kt:356) ~[maestro-orchestra.jar:?] at maestro.orchestra.Orchestra.executeCommands(Orchestra.kt:251) ~[maestro-orchestra.jar:?] at maestro.orchestra.Orchestra.runFlow(Orchestra.kt:169) ~[maestro-orchestra.jar:?] at maestro.cli.runner.MaestroCommandRunner.runCommands(MaestroCommandRunner.kt:193) ~[maestro-cli-2.0.0.jar:?] at maestro.cli.runner.TestRunner$runSingle$result$1$1.invokeSuspend(TestRunner.kt:75) ~[maestro-cli-2.0.0.jar:?] at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlin-stdlib-2.2.0.jar:2.2.0-release-294] at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104) ~[kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:277) ~[kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:95) ~[kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:69) ~[kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source) ~[kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:48) ~[kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source) ~[kotlinx-coroutines-core-jvm-1.8.0.jar:?] at maestro.cli.runner.TestRunner.runSingle$lambda$0(TestRunner.kt:74) ~[maestro-cli-2.0.0.jar:?] at maestro.cli.runner.TestRunner.runCatching-ta8aW1Q(TestRunner.kt:200) ~[maestro-cli-2.0.0.jar:?] at maestro.cli.runner.TestRunner.runSingle(TestRunner.kt:65) ~[maestro-cli-2.0.0.jar:?] at maestro.cli.command.TestCommand.runSingleFlow(TestCommand.kt:432) ~[maestro-cli-2.0.0.jar:?] at maestro.cli.command.TestCommand.runShardSuite$lambda$6(TestCommand.kt:406) ~[maestro-cli-2.0.0.jar:?] at maestro.cli.session.MaestroSessionManager.newSession(MaestroSessionManager.kt:129) [maestro-cli-2.0.0.jar:?] at maestro.cli.session.MaestroSessionManager.newSession$default(MaestroSessionManager.kt:65) [maestro-cli-2.0.0.jar:?] at maestro.cli.command.TestCommand.runShardSuite(TestCommand.kt:371) [maestro-cli-2.0.0.jar:?] at maestro.cli.command.TestCommand.access$runShardSuite(TestCommand.kt:65) [maestro-cli-2.0.0.jar:?] at maestro.cli.command.TestCommand$handleSessions$1$results$1$1.invokeSuspend(TestCommand.kt:335) [maestro-cli-2.0.0.jar:?] at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) [kotlin-stdlib-2.2.0.jar:2.2.0-release-294] at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104) [kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:111) [kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:99) [kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585) [kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802) [kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706) [kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693) [kotlinx-coroutines-core-jvm-1.8.0.jar:?] Suppressed: java.io.IOException: unexpected end of stream on http://127.0.0.1:7001/... at okhttp3.internal.http1.Http1ExchangeCodec.readResponseHeaders(Http1ExchangeCodec.kt:210) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.connection.Exchange.readResponseHeaders(Exchange.kt:110) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.kt:93) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[okhttp-4.12.0.jar:?] at maestro.utils.HttpClient.build_OPOXi9g$lambda$0(HttpClient.kt:80) ~[maestro-utils.jar:?] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:34) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154) ~[okhttp-4.12.0.jar:?] at xcuitest.XCTestDriverClient.executeJsonRequest(XCTestDriverClient.kt:227) ~[maestro-ios-driver.jar:?] at xcuitest.XCTestDriverClient.inputText(XCTestDriverClient.kt:135) ~[maestro-ios-driver.jar:?] at ios.xctest.XCTestIOSDevice.input$lambda$8(XCTestIOSDevice.kt:120) ~[maestro-ios.jar:?] at ios.xctest.XCTestIOSDevice.execute(XCTestIOSDevice.kt:235) ~[maestro-ios.jar:?] at ios.xctest.XCTestIOSDevice.input(XCTestIOSDevice.kt:118) ~[maestro-ios.jar:?] at ios.LocalIOSDevice.input(LocalIOSDevice.kt:84) ~[maestro-ios.jar:?] at maestro.drivers.IOSDriver.inputText$lambda$41$lambda$40(IOSDriver.kt:431) ~[maestro-client.jar:?] at maestro.drivers.IOSDriver.runDeviceCall(IOSDriver.kt:547) ~[maestro-client.jar:?] at maestro.drivers.IOSDriver.inputText$lambda$41(IOSDriver.kt:431) ~[maestro-client.jar:?] at maestro.utils.Metrics.measured(Metrics.kt:48) ~[maestro-utils.jar:?] at maestro.drivers.IOSDriver.inputText(IOSDriver.kt:430) ~[maestro-client.jar:?] at maestro.Maestro.inputText(Maestro.kt:465) ~[maestro-client.jar:?] at maestro.orchestra.Orchestra.inputTextCommand(Orchestra.kt:1035) ~[maestro-orchestra.jar:?] at maestro.orchestra.Orchestra.executeCommand(Orchestra.kt:345) ~[maestro-orchestra.jar:?] at maestro.orchestra.Orchestra.executeSubflowCommands(Orchestra.kt:872) ~[maestro-orchestra.jar:?] at maestro.orchestra.Orchestra.runSubFlow(Orchestra.kt:929) ~[maestro-orchestra.jar:?] at maestro.orchestra.Orchestra.runFlowCommand(Orchestra.kt:771) ~[maestro-orchestra.jar:?] at maestro.orchestra.Orchestra.executeCommand(Orchestra.kt:356) ~[maestro-orchestra.jar:?] at maestro.orchestra.Orchestra.executeCommands(Orchestra.kt:251) ~[maestro-orchestra.jar:?] at maestro.orchestra.Orchestra.runFlow(Orchestra.kt:169) ~[maestro-orchestra.jar:?] at maestro.cli.runner.MaestroCommandRunner.runCommands(MaestroCommandRunner.kt:193) ~[maestro-cli-2.0.0.jar:?] at maestro.cli.runner.TestRunner$runSingle$result$1$1.invokeSuspend(TestRunner.kt:75) ~[maestro-cli-2.0.0.jar:?] at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) ~[kotlin-stdlib-2.2.0.jar:2.2.0-release-294] at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104) ~[kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:277) ~[kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.BlockingCoroutine.joinBlocking(Builders.kt:95) ~[kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking(Builders.kt:69) ~[kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source) ~[kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.BuildersKt__BuildersKt.runBlocking$default(Builders.kt:48) ~[kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source) ~[kotlinx-coroutines-core-jvm-1.8.0.jar:?] at maestro.cli.runner.TestRunner.runSingle$lambda$0(TestRunner.kt:74) ~[maestro-cli-2.0.0.jar:?] at maestro.cli.runner.TestRunner.runCatching-ta8aW1Q(TestRunner.kt:200) ~[maestro-cli-2.0.0.jar:?] at maestro.cli.runner.TestRunner.runSingle(TestRunner.kt:65) ~[maestro-cli-2.0.0.jar:?] at maestro.cli.command.TestCommand.runSingleFlow(TestCommand.kt:432) ~[maestro-cli-2.0.0.jar:?] at maestro.cli.command.TestCommand.runShardSuite$lambda$6(TestCommand.kt:406) ~[maestro-cli-2.0.0.jar:?] at maestro.cli.session.MaestroSessionManager.newSession(MaestroSessionManager.kt:129) [maestro-cli-2.0.0.jar:?] at maestro.cli.session.MaestroSessionManager.newSession$default(MaestroSessionManager.kt:65) [maestro-cli-2.0.0.jar:?] at maestro.cli.command.TestCommand.runShardSuite(TestCommand.kt:371) [maestro-cli-2.0.0.jar:?] at maestro.cli.command.TestCommand.access$runShardSuite(TestCommand.kt:65) [maestro-cli-2.0.0.jar:?] at maestro.cli.command.TestCommand$handleSessions$1$results$1$1.invokeSuspend(TestCommand.kt:335) [maestro-cli-2.0.0.jar:?] at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33) [kotlin-stdlib-2.2.0.jar:2.2.0-release-294] at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:104) [kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.internal.LimitedDispatcher$Worker.run(LimitedDispatcher.kt:111) [kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.scheduling.TaskImpl.run(Tasks.kt:99) [kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:585) [kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:802) [kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:706) [kotlinx-coroutines-core-jvm-1.8.0.jar:?] at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:693) [kotlinx-coroutines-core-jvm-1.8.0.jar:?] Caused by: java.io.EOFException: \n not found: limit=0 content=… at okio.RealBufferedSource.readUtf8LineStrict(RealBufferedSource.kt:339) ~[okio-jvm-3.8.0.jar:?] at okhttp3.internal.http1.HeadersReader.readLine(HeadersReader.kt:29) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.http1.Http1ExchangeCodec.readResponseHeaders(Http1ExchangeCodec.kt:180) ~[okhttp-4.12.0.jar:?] ... 63 more Caused by: java.net.ConnectException: Connection refused at java.base/sun.nio.ch.Net.pollConnect(Native Method) ~[?:?] at java.base/sun.nio.ch.Net.pollConnectNow(Net.java:672) ~[?:?] at java.base/sun.nio.ch.NioSocketImpl.timedFinishConnect(NioSocketImpl.java:547) ~[?:?] at java.base/sun.nio.ch.NioSocketImpl.connect(NioSocketImpl.java:602) ~[?:?] at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:327) ~[?:?] at java.base/java.net.Socket.connect(Socket.java:639) ~[?:?] at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128) ~[okhttp-4.12.0.jar:?] at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295) ~[okhttp-4.12.0.jar:?] ... 63 more 06:05:31.097 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Start] Perform XCUITest driver status check on 766AF53B-0004-4060-ADD7-F2524BD8191C 06:05:31.097 [ INFO] xcuitest.installer.LocalXCTestInstaller.xcTestDriverStatusCheck: [Failed] Perform XCUITest driver status check on 766AF53B-0004-4060-ADD7-F2524BD8191C, exception: java.net.ConnectException: Failed to connect to /127.0.0.1:7001 06:05:31.356 [ INFO] maestro.cli.report.TestDebugReporter.deleteOldFiles: Performing purge of logs older than 14 days from /Users/expo/.maestro/tests

Reproducible demo or steps to reproduce from a blank project

https://github.com/user-attachments/assets/a17e7601-1d22-442f-9047-6a254dc9a523

BohdanPylypchuk avatar Aug 27 '25 14:08 BohdanPylypchuk

+1 same issue but in old architecture. It's not relative to old arch or new arch but about the machine that is running Maestro inside EAS servers

yonitou avatar Sep 01 '25 16:09 yonitou

@BohdanPylypchuk @yonitou Hey, Can you please tell me how do you provide the config file when running the maestro flow? For some certain reason I am unable to addMedia in my flows. It works fine locally but it doesn't work in the eas pipeline: It says the path is incorrect in the pipeline but locally it works. Not sure what am I missing. The tests are located in the root maestro/subFolder* and the media file is at assets/images/icon.png i am using it like:

- "../../assets/icon.png"```

akshithere avatar Sep 02 '25 11:09 akshithere

@akshithere, unfortunately, I don't have any media in my flow tests and don't have a config for Maestro. Just default settings

BohdanPylypchuk avatar Sep 02 '25 12:09 BohdanPylypchuk

@BohdanPylypchuk Oh okay, Thanks

akshithere avatar Sep 02 '25 15:09 akshithere

I think I came across exactly the same error. It seems it happens right after Maestro.inputText

01:12:05.858 [ INFO] maestro.Maestro.inputText: Inputting text: [email protected]
01:13:38.700 [ERROR] maestro.orchestra.Orchestra.executeCommands: [Command execution] CommandFailed: Failed to connect to /127.0.0.1:7001
01:13:38.702 [ INFO] maestro.Maestro.takeScreenshot: Taking screenshot
01:13:38.704 [TRACE] maestro.utils.ScreenshotUtils.takeScreenshot: Taking screenshot to output sink
01:13:38.706 [ERROR] maestro.cli.runner.TestRunner.runCatching-ta8aW1Q: Failed to run flow

piotr-pietras avatar Sep 11 '25 14:09 piotr-pietras

Hi, I too think there's something wrong with inputting text in some versions of the Simulator.

Try switching the image to macos-sequoia-15.3-xcode-16.2, I found it helps. It is also the default image version now so unless you already specify an image, things should "just work" since yesterday. Let me know how it goes

sjchmiela avatar Sep 12 '25 10:09 sjchmiela

It works now. Thanks

piotr-pietras avatar Sep 15 '25 06:09 piotr-pietras

Hello, I would like to say that I am also experiencing this issue and it is also related to TextInput. I'm already using macos-sequoia-15.3-xcode-16.2 and it still doesn't work.

It fails here:

06:59:57.683 [ INFO] maestro.cli.runner.TestSuiteInteractor.invoke: Tap on id: first-name-input COMPLETED
06:59:57.683 [ INFO] maestro.cli.runner.TestSuiteInteractor.invoke: Input text X RUNNING
06:59:57.684 [ INFO] maestro.Maestro.inputText: Inputting text: X
07:01:30.473 [ERROR] maestro.orchestra.Orchestra.executeCommands: [Command execution] CommandFailed: Failed to connect to /127.0.0.1:7001
07:01:30.474 [ INFO] maestro.cli.runner.TestSuiteInteractor.invoke: Input text X FAILED
07:01:30.475 [ INFO] maestro.Maestro.takeScreenshot: Taking screenshot

and then it fails to start the next test and subsequent tests here:

07:01:34.911 [ INFO] maestro.cli.runner.TestSuiteInteractor.invoke: Launch app "${MAESTRO_APP_ID}" with clear state (launch arguments: {EXDevMenuDisableAutoLaunch=true, testName=${TEST_NAME}, FeatureFlags=${LD_FEATURE_FLAGS}}) FAILED
07:01:34.912 [ INFO] maestro.Maestro.takeScreenshot: Taking screenshot
07:01:34.912 [TRACE] maestro.utils.ScreenshotUtils.takeScreenshot: Taking screenshot to output sink
07:01:34.912 [ERROR] maestro.orchestra.Orchestra.executeCommands: [Command execution] CommandFailed: Unable to clear state for app com.pleo.staging: Failed to connect to /127.0.0.1:7001
07:01:34.912 [ INFO] maestro.cli.runner.TestSuiteInteractor.invoke: Run ../subflows/launch-app.yaml FAILED
07:01:34.912 [ INFO] maestro.Maestro.takeScreenshot: Taking screenshot
07:01:34.912 [TRACE] maestro.utils.ScreenshotUtils.takeScreenshot: Taking screenshot to output sink

francisauwerda avatar Oct 30 '25 15:10 francisauwerda

I just started having this issue as well and was already using the default macos-sequoia-15.3-xcode-16.2. But tried other images and macos-sonoma-14.6-xcode-16.1 worked for me.

aullman avatar Nov 05 '25 04:11 aullman