Closed stephanww closed 1 year ago
@wingcommander2020 are you seeing the same issue when using maestro version 1.23.0
?
My colleague is still on 1.23.0 and he does not get the error using the same flow-file.
I already tried downgrading by manually uninstalling maestro1.24.0 and re-installing using 'MAESTRO_VERSION={1.23.0}'. I got version 1.23.0 but the error remained on my machine.
Thanks for confirming @wingcommander2020 -- it does seem like something is not fully right with your local environment. Could you try recreating the simulator? If that doesn't work, can you try using another device model and/or iOS version on your sim?
I'm having the same problem with an older version. I've tried reinstalling all the packages and of course, updating to the latest 1.24.0. Perhaps it's a privacy thing? since Chrome is launched but unable to start the XCUITest Server.
After creating a new sim device the original error message is gone. The flow fails however prematurely for any iOS simdevice I pick. This is what is visible before the flow fails:
edit: I mean the app tile of maestro, I have not seen this before - could this indicate the cause of the problem?
Again on Android everything works as supposed to.
I've install a new simulator and now I'm getting:
java.lang.IllegalStateException: idb_companion is not able dispatch successful tap events
at maestro.cli.device.DeviceService.startIdbCompanion(DeviceService.kt:137)
at maestro.cli.device.DeviceService.prepareDevice(DeviceService.kt:82)
at maestro.cli.device.PickDeviceInteractor.pickDevice(PickDeviceInteractor.kt:31)
at maestro.cli.session.MaestroSessionManager.selectDevice(MaestroSessionManager.kt:113)
at maestro.cli.session.MaestroSessionManager.newSession(MaestroSessionManager.kt:63)
at maestro.cli.command.StudioCommand.call(StudioCommand.kt:36)
at maestro.cli.command.StudioCommand.call(StudioCommand.kt:18)
at picocli.CommandLine.executeUserObject(CommandLine.java:1933)
at picocli.CommandLine.access$1200(CommandLine.java:145)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2332)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2326)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2291)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2159)
at maestro.cli.DisableAnsiMixin$Companion.executionStrategy(DisableAnsiMixin.kt:22)
at picocli.CommandLine.execute(CommandLine.java:2058)
at maestro.cli.AppKt.main(App.kt:125)
Any suggestions?
This is also a problem in v1.23.0 and xcode version v4.1.
Unable to launch app <package-name>: Failed to reach out XCUITest Server
Seems like even just running the app and not executing the flow.
Thanks for the context folks. @berikv from our team is working on stability improvements regarding the XCUITest runner so whenever there is an update on this we'll post it here!
This issue is getting conflated.
1.
I'm working on a fix (https://github.com/mobile-dev-inc/maestro/pull/882) for the issue where maestro cli outputs "Failed to reach out XCUITest Server". Preferably I'd run a validation to make sure the issue is fixed. @wingcommander2020 is there a way I can run your flow? Or, alternatively, could you clone the maestro repo, checkout of the PR branch and run ./maestro ...
to test it?
2.
The flow fails however prematurely for any iOS simdevice I pick
This is strange. @wingcommander2020, can you share more information such as log files / etc. Did you try rebooting? Another trick that works with broken simulators is to remove (backup) the /Library/Developer/CoreSimulator/Profiles/Runtimes/* directories and reinstalling the runtimes you need through Xcode.
This is also a problem in v1.23.0 and xcode version v4.1.
The fix I'm working on very likely also fixes this issue. @gumil is it possible for you to share a reproducible scenario or otherwise run it locally (as described above?
Hi team, I'm facing the same error in a different context:
I'm trying to run some tests on a GitHub action.
Maestro: latest -> curl -Ls "https://get.maestro.mobile.dev" | bash
iOS: iPhone 14 Plus - iOS 16.2
macOS: macos-latest
from a Github-hosted runners
The same flow works locally. (with act)
Let me know if you need more context!
The fix I'm working on very likely also fixes this issue. @gumil is it possible for you to share a reproducible scenario or otherwise run it locally (as described above?
I found out that I only have this error when I use the github step action to do maestro tests. I also added an issue to the github action here https://github.com/dniHze/maestro-test-action/issues/50
Hi @berikv , thanks for your reply.
I have pulled maestro and built it locally. The issue still occurs. It also occurs when using the sample ios-flows provided by maestro, so not sure if my flow is the issue.
I do not have a '/Library/Developer/CoreSimulator/Profiles' folder. Below 'CoreSimulator' I only have 'Caches' 'Images' 'Volumes'. Could this be the problem?
edit: Problem also occurs on maestro 1.25.0 for me.
I am also facing the same issue. Could this be related to machine? Using M1 here
I am also facing the same issue. Could this be related to machine? Using M1 here
I am on a M2 Mac Pro, my colleague has the same hardware and no problems with an older version of Maestro <1.24.0. I also have a M2 Mac Air and Maestro >=1.24.0 works fine using the same flows. I have already reset the M2 Mac Pro twice, but to no avail - still crashes as described above.
Could this be related to an incompatible third party library's version? @berikv Would it help to list version numbers of certain dependencies to pinpoint the problem?
I Have the same issue on Azure Devops pipeline, which uses the github actions macos
image.
Assert that "SIGN IN" is visible...xcuitest.XCTestDriverClient$XCTestDriverUnreachable: Failed to reach out XCUITest Server
at xcuitest.XCTestDriverClient$okHttpClient$2.invoke$lambda-0(XCTestDriverClient.kt:45)
at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
Facing the same issue on my MacBook. One possible idea: I do not have Rosetta installed on my Mac - our build server (where Maestro is running fine) does have Rosetta 2 installed.
Hi, after https://github.com/mobile-dev-inc/maestro/pull/882 got merged, the problem about Failed to reach out XCUITest Server
is not happening for me anymore. Tried with maestro version 1.26.0.
Thanks!
Based on the above comment I retried on GitHub Actions, but unfortunately the problem is still occurring for me there: https://github.com/CodingItWrong/listapp-expo/actions/runs/4584588560/jobs/8358340701
that's unfortunate @CodingItWrong , I took a look at your workflow file and the only difference is that I am using macos-latest, not sure if that could have an impact. Here is an example of my github actions that started working after the update, in case you want to compare by yourself: https://github.com/RafaO/yourpet/actions/runs/4709440955/jobs/8352510660
Notice as well I added an echo instruction to print the actual version of maestro that's been used so I could verify it is 1.26.
Thanks @RafaO; switching to macos-latest
worked for me.
Then I tried macos-13
because I like to lock versions down more, but my action stayed in the queue indefinitely. I would probably need to research more about what macOS versions are available, but that's not related to this issue.
Unfortunately, the problem is not solved with Maestro 1.26.1 on my local machine 😞. Maestro Studio does not work either. Even though the website opens in the browser, the area below the Maestro Studio header stays blank and I get the following Terminal output:
Running on iPhone 14 Pro - iOS 16.4 - 65D03AD1-2177-4389-ADAE-3A894BBB7D8A
Waiting for idb service to start..
Waiting for Simulator to boot..
Waiting for successful taps
Simulator ready
╭────────────────────────────────────────────────────────╮
│ │
│ Maestro Studio is running at http://localhost:9999 │
│ │
╰────────────────────────────────────────────────────────╯
Tip: Maestro Studio can now run simultaneously alongside other Maestro CLI commands!
Navigate to http://localhost:9999 in your browser to open Maestro Studio. Ctrl-C to exit.
com.github.michaelbull.result.UnwrapException: kotlin.Unit xcuitest.XCTestDriverClient$XCTestDriverUnreachable: Failed to reach out XCUITest Server in RetryOnError
at maestro.drivers.IOSDriver$deviceInfo$2.invoke(IOSDriver.kt:64)
at maestro.drivers.IOSDriver$deviceInfo$2.invoke(IOSDriver.kt:63)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at maestro.drivers.IOSDriver.getDeviceInfo(IOSDriver.kt:63)
at maestro.drivers.IOSDriver.deviceInfo(IOSDriver.kt:96)
at maestro.ViewHierarchy$Companion.from-c1iYVAs(ViewHierarchy.kt:28)
at maestro.Maestro.viewHierarchy-prqvCes(Maestro.kt:372)
at maestro.studio.DeviceScreenService$routes$1.invokeSuspend(DeviceScreenService.kt:41)
at maestro.studio.DeviceScreenService$routes$1.invoke(DeviceScreenService.kt)
at maestro.studio.DeviceScreenService$routes$1.invoke(DeviceScreenService.kt)
at io.ktor.server.routing.Route$buildPipeline$1$1.invokeSuspend(Route.kt:116)
at io.ktor.server.routing.Route$buildPipeline$1$1.invoke(Route.kt)
at io.ktor.server.routing.Route$buildPipeline$1$1.invoke(Route.kt)
at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:120)
at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:78)
at io.ktor.util.pipeline.SuspendFunctionGun.execute$ktor_utils(SuspendFunctionGun.kt:98)
at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:77)
at io.ktor.server.routing.Routing$executeResult$$inlined$execute$1.invokeSuspend(Pipeline.kt:478)
at io.ktor.server.routing.Routing$executeResult$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.server.routing.Routing$executeResult$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.util.debug.ContextUtilsKt.initContextInDebugMode(ContextUtils.kt:17)
at io.ktor.server.routing.Routing.executeResult(Routing.kt:190)
at io.ktor.server.routing.Routing.interceptor(Routing.kt:64)
at io.ktor.server.routing.Routing$Plugin$install$1.invokeSuspend(Routing.kt:140)
at io.ktor.server.routing.Routing$Plugin$install$1.invoke(Routing.kt)
at io.ktor.server.routing.Routing$Plugin$install$1.invoke(Routing.kt)
at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:120)
at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:78)
at io.ktor.server.engine.BaseApplicationEngineKt$installDefaultTransformationChecker$1.invokeSuspend(BaseApplicationEngine.kt:123)
at io.ktor.server.engine.BaseApplicationEngineKt$installDefaultTransformationChecker$1.invoke(BaseApplicationEngine.kt)
at io.ktor.server.engine.BaseApplicationEngineKt$installDefaultTransformationChecker$1.invoke(BaseApplicationEngine.kt)
at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:120)
at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:78)
at io.ktor.server.application.hooks.CallFailed$install$1$1.invokeSuspend(CommonHooks.kt:43)
at io.ktor.server.application.hooks.CallFailed$install$1$1.invoke(CommonHooks.kt)
at io.ktor.server.application.hooks.CallFailed$install$1$1.invoke(CommonHooks.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:264)
at io.ktor.server.application.hooks.CallFailed$install$1.invokeSuspend(CommonHooks.kt:42)
at io.ktor.server.application.hooks.CallFailed$install$1.invoke(CommonHooks.kt)
at io.ktor.server.application.hooks.CallFailed$install$1.invoke(CommonHooks.kt)
at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:120)
at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:78)
at io.ktor.util.pipeline.SuspendFunctionGun.execute$ktor_utils(SuspendFunctionGun.kt:98)
at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:77)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1$invokeSuspend$$inlined$execute$1.invokeSuspend(Pipeline.kt:478)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1$invokeSuspend$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1$invokeSuspend$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.util.debug.ContextUtilsKt.initContextInDebugMode(ContextUtils.kt:17)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1.invokeSuspend(DefaultEnginePipeline.kt:118)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1.invoke(DefaultEnginePipeline.kt)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1.invoke(DefaultEnginePipeline.kt)
at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:120)
at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:78)
at io.ktor.util.pipeline.SuspendFunctionGun.execute$ktor_utils(SuspendFunctionGun.kt:98)
at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:77)
at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1$invokeSuspend$$inlined$execute$1.invokeSuspend(Pipeline.kt:478)
at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1$invokeSuspend$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1$invokeSuspend$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.util.debug.ContextUtilsKt.initContextInDebugMode(ContextUtils.kt:17)
at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1.invokeSuspend(NettyApplicationCallHandler.kt:119)
at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1.invoke(NettyApplicationCallHandler.kt)
at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1.invoke(NettyApplicationCallHandler.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:55)
at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:112)
at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:126)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:56)
at kotlinx.coroutines.BuildersKt.launch(Unknown Source)
at io.ktor.server.netty.NettyApplicationCallHandler.handleRequest(NettyApplicationCallHandler.kt:37)
at io.ktor.server.netty.NettyApplicationCallHandler.channelRead(NettyApplicationCallHandler.kt:29)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:61)
at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:425)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.ktor.server.netty.EventLoopGroupProxy$Companion.create$lambda$1$lambda$0(NettyApplicationEngine.kt:291)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1623)
com.github.michaelbull.result.UnwrapException: kotlin.Unit xcuitest.XCTestDriverClient$XCTestDriverUnreachable: Failed to reach out XCUITest Server in RetryOnError
at maestro.drivers.IOSDriver$deviceInfo$2.invoke(IOSDriver.kt:64)
at maestro.drivers.IOSDriver$deviceInfo$2.invoke(IOSDriver.kt:63)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at maestro.drivers.IOSDriver.getDeviceInfo(IOSDriver.kt:63)
at maestro.drivers.IOSDriver.deviceInfo(IOSDriver.kt:96)
at maestro.ViewHierarchy$Companion.from-c1iYVAs(ViewHierarchy.kt:28)
at maestro.Maestro.viewHierarchy-prqvCes(Maestro.kt:372)
at maestro.studio.DeviceScreenService$routes$1.invokeSuspend(DeviceScreenService.kt:41)
at maestro.studio.DeviceScreenService$routes$1.invoke(DeviceScreenService.kt)
at maestro.studio.DeviceScreenService$routes$1.invoke(DeviceScreenService.kt)
at io.ktor.server.routing.Route$buildPipeline$1$1.invokeSuspend(Route.kt:116)
at io.ktor.server.routing.Route$buildPipeline$1$1.invoke(Route.kt)
at io.ktor.server.routing.Route$buildPipeline$1$1.invoke(Route.kt)
at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:120)
at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:78)
at io.ktor.util.pipeline.SuspendFunctionGun.execute$ktor_utils(SuspendFunctionGun.kt:98)
at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:77)
at io.ktor.server.routing.Routing$executeResult$$inlined$execute$1.invokeSuspend(Pipeline.kt:478)
at io.ktor.server.routing.Routing$executeResult$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.server.routing.Routing$executeResult$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.util.debug.ContextUtilsKt.initContextInDebugMode(ContextUtils.kt:17)
at io.ktor.server.routing.Routing.executeResult(Routing.kt:190)
at io.ktor.server.routing.Routing.interceptor(Routing.kt:64)
at io.ktor.server.routing.Routing$Plugin$install$1.invokeSuspend(Routing.kt:140)
at io.ktor.server.routing.Routing$Plugin$install$1.invoke(Routing.kt)
at io.ktor.server.routing.Routing$Plugin$install$1.invoke(Routing.kt)
at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:120)
at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:78)
at io.ktor.server.engine.BaseApplicationEngineKt$installDefaultTransformationChecker$1.invokeSuspend(BaseApplicationEngine.kt:123)
at io.ktor.server.engine.BaseApplicationEngineKt$installDefaultTransformationChecker$1.invoke(BaseApplicationEngine.kt)
at io.ktor.server.engine.BaseApplicationEngineKt$installDefaultTransformationChecker$1.invoke(BaseApplicationEngine.kt)
at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:120)
at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:78)
at io.ktor.server.application.hooks.CallFailed$install$1$1.invokeSuspend(CommonHooks.kt:43)
at io.ktor.server.application.hooks.CallFailed$install$1$1.invoke(CommonHooks.kt)
at io.ktor.server.application.hooks.CallFailed$install$1$1.invoke(CommonHooks.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:89)
at kotlinx.coroutines.CoroutineScopeKt.coroutineScope(CoroutineScope.kt:264)
at io.ktor.server.application.hooks.CallFailed$install$1.invokeSuspend(CommonHooks.kt:42)
at io.ktor.server.application.hooks.CallFailed$install$1.invoke(CommonHooks.kt)
at io.ktor.server.application.hooks.CallFailed$install$1.invoke(CommonHooks.kt)
at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:120)
at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:78)
at io.ktor.util.pipeline.SuspendFunctionGun.execute$ktor_utils(SuspendFunctionGun.kt:98)
at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:77)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1$invokeSuspend$$inlined$execute$1.invokeSuspend(Pipeline.kt:478)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1$invokeSuspend$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1$invokeSuspend$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.util.debug.ContextUtilsKt.initContextInDebugMode(ContextUtils.kt:17)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1.invokeSuspend(DefaultEnginePipeline.kt:118)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1.invoke(DefaultEnginePipeline.kt)
at io.ktor.server.engine.DefaultEnginePipelineKt$defaultEnginePipeline$1.invoke(DefaultEnginePipeline.kt)
at io.ktor.util.pipeline.SuspendFunctionGun.loop(SuspendFunctionGun.kt:120)
at io.ktor.util.pipeline.SuspendFunctionGun.proceed(SuspendFunctionGun.kt:78)
at io.ktor.util.pipeline.SuspendFunctionGun.execute$ktor_utils(SuspendFunctionGun.kt:98)
at io.ktor.util.pipeline.Pipeline.execute(Pipeline.kt:77)
at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1$invokeSuspend$$inlined$execute$1.invokeSuspend(Pipeline.kt:478)
at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1$invokeSuspend$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1$invokeSuspend$$inlined$execute$1.invoke(Pipeline.kt)
at io.ktor.util.debug.ContextUtilsKt.initContextInDebugMode(ContextUtils.kt:17)
at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1.invokeSuspend(NettyApplicationCallHandler.kt:119)
at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1.invoke(NettyApplicationCallHandler.kt)
at io.ktor.server.netty.NettyApplicationCallHandler$handleRequest$1.invoke(NettyApplicationCallHandler.kt)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startCoroutineUndispatched(Undispatched.kt:55)
at kotlinx.coroutines.CoroutineStart.invoke(CoroutineStart.kt:112)
at kotlinx.coroutines.AbstractCoroutine.start(AbstractCoroutine.kt:126)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.launch(Builders.common.kt:56)
at kotlinx.coroutines.BuildersKt.launch(Unknown Source)
at io.ktor.server.netty.NettyApplicationCallHandler.handleRequest(NettyApplicationCallHandler.kt:37)
at io.ktor.server.netty.NettyApplicationCallHandler.channelRead(NettyApplicationCallHandler.kt:29)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444)
at io.netty.channel.AbstractChannelHandlerContext.access$600(AbstractChannelHandlerContext.java:61)
at io.netty.channel.AbstractChannelHandlerContext$7.run(AbstractChannelHandlerContext.java:425)
at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:174)
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:167)
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:470)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569)
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.ktor.server.netty.EventLoopGroupProxy$Companion.create$lambda$1$lambda$0(NettyApplicationEngine.kt:291)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Thread.java:1623)
I seem to be getting the exact same problem as Yanniks too. Have tried different versions of xcode, ios and maestro, along with updating macos to no avail.
Hi there folks, it would be much appreciated if you could try upgrading to the most recent version of maestro as we have merged some fixes related to this issue and let us know if the issue still persists for you. Thanks!
Also getting the error Failed to reach out XCUITest Server
when running 1.23.0
and 1.24.0
. When upgrading to to the most recent version the app still doesn't launch, but I no longer get an error in the CLI and it fails silently. Have tried multiple iOS simulator versions and same issue on them all. Works fine on Android.
Any suggestions on how to debug that to provide some more useful error messages?
Might be related to this:
https://stackoverflow.com/questions/70298400/why-am-i-getting-an-xcuitest-failed-to-receive-any-data-within-the-timeout-5
I dont wanna downgrade node though 😅
@axelniklasson Upgrading maestro and/or downgrading node didn't work either
EDIT: Might have to do with your MacOS. I upgraded mine from 12 to 13 (Ventura), reinstalled CocoaPods, and ruby then it started working
@axelniklasson I am getting the following error:
com.github.michaelbull.result.UnwrapException: kotlin.Unit xcuitest.XCTestDriverClient$XCTestDriverUnreachable: Failed to reach out XCUITest Server in RetryOnError
at maestro.drivers.IOSDriver$deviceInfo$2.invoke(IOSDriver.kt:65)
at maestro.drivers.IOSDriver$deviceInfo$2.invoke(IOSDriver.kt:64)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at maestro.drivers.IOSDriver.getDeviceInfo(IOSDriver.kt:64)
at maestro.drivers.IOSDriver.deviceInfo(IOSDriver.kt:97)
at maestro.Maestro.fetchDeviceInfo(Maestro.kt:57)
at maestro.Maestro.access$fetchDeviceInfo(Maestro.kt:37)
at maestro.Maestro$cachedDeviceInfo$2.invoke(Maestro.kt:43)
at maestro.Maestro$cachedDeviceInfo$2.invoke(Maestro.kt:42)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at maestro.Maestro.getCachedDeviceInfo(Maestro.kt:42)
at maestro.Maestro.deviceInfo(Maestro.kt:51)
at maestro.orchestra.Orchestra.deviceInfo(Orchestra.kt:745)
at maestro.orchestra.Orchestra.findElement(Orchestra.kt:732)
at maestro.orchestra.Orchestra.findElement$default(Orchestra.kt:717)
at maestro.orchestra.Orchestra.tapOnElement(Orchestra.kt:645)
at maestro.orchestra.Orchestra.executeCommand(Orchestra.kt:172)
at maestro.orchestra.Orchestra.runSubFlow(Orchestra.kt:520)
at maestro.orchestra.Orchestra.runFlowCommand(Orchestra.kt:429)
at maestro.orchestra.Orchestra.executeCommand(Orchestra.kt:201)
at maestro.orchestra.Orchestra.executeCommands(Orchestra.kt:150)
at maestro.orchestra.Orchestra.runFlow(Orchestra.kt:93)
at maestro.cli.runner.MaestroCommandRunner.runCommands(MaestroCommandRunner.kt:120)
at maestro.cli.runner.TestRunner$runSingle$result$1.invoke(TestRunner.kt:36)
at maestro.cli.runner.TestRunner$runSingle$result$1.invoke(TestRunner.kt:32)
at maestro.cli.runner.TestRunner.runCatching(TestRunner.kt:123)
at maestro.cli.runner.TestRunner.runSingle(TestRunner.kt:32)
at maestro.cli.command.TestCommand$call$1.invoke(TestCommand.kt:163)
at maestro.cli.command.TestCommand$call$1.invoke(TestCommand.kt:124)
at maestro.cli.session.MaestroSessionManager.newSession(MaestroSessionManager.kt:99)
at maestro.cli.session.MaestroSessionManager.newSession$default(MaestroSessionManager.kt:57)
at maestro.cli.command.TestCommand.call(TestCommand.kt:124)
at maestro.cli.command.TestCommand.call(TestCommand.kt:42)
at picocli.CommandLine.executeUserObject(CommandLine.java:1933)
at picocli.CommandLine.access$1200(CommandLine.java:145)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2332)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2326)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2291)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2159)
at maestro.cli.DisableAnsiMixin$Companion.executionStrategy(DisableAnsiMixin.kt:22)
at picocli.CommandLine.execute(CommandLine.java:2058)
at maestro.cli.AppKt.main(App.kt:125)
The test is able to start, it launches the app and the first command is - tapOn: "Log In"
and that is when I get this error. Other members on my team are using the same version of Maestro and are NOT experiencing this issue so I am not sure whats going on.
The error I am getting is very similar to the issue description so posting my experience here.
I am using:
ios-advanced-flow.yaml
from the Maestro sample project crashes on the first swipe action.
android-advanced-flow.yaml
runs without an issue. @kzlukosky It had to do with my environment for me. You might want to try reinstalling or upgrading cocoapods and rbenv (or whatever other ruby version management you might use). Also make sure no physical devices are connected. Hopefully that works for you!
@kzlukosky It had to do with my environment for me. You might want to try reinstalling or upgrading cocoapods and rbenv (or whatever other ruby version management you might use). Also make sure no physical devices are connected. Hopefully that works for you!
Unfortunately I did see your comment and reinstalled cocoapods and ruby already and sadly am still experiencing the same issue.
@kzlukosky Did you make sure to close all the terminal/console windows and IDE then reopen? Cause I was still getting the errors until I did that
@kzlukosky Did you make sure to close all the terminal/console windows and IDE then reopen? Cause I was still getting the errors until I did that
@KrisLau Yea I closed anything that was open, restarted by computer and tried again with the same issue. Was MacOS, Cocoapods and Ruby the only things you updated/reinstalled?
@kzlukosky Afaik, yes but I also had to do some other stuff to get my project running again which might've changed things up! I did sudo gem pristine <gem name> --version <version #>
to a bunch of different gems. Did a pod install/update
in my ios folder. Uninstalled and reinstalled rbenv & double checked that all my environment files (.bashrc, .bash_profile, .zshrc) were configured with the proper script or rbenv to work. The last one is most likely to have helped if it wasn't the installation stuff
no clue why but maestro tests stopped working again and my builds have this error:
2023-05-12 13:22:27.881 xcodebuild[16301:82268] DVTCoreDeviceEnabledState: DVTCoreDeviceEnabledState_Disabled set via user default (DVTEnableCoreDevice=disabled)
2023-05-12 13:22:31.713 xcodebuild[16301:82357] Requested but did not find extension point with identifier Xcode.InterfaceBuilderBuildSupport.PlatformDefinition
EDIT: Omg fixed it again. ok @kzlukosky this time i can narrow down what fixed it for me. My node version was too high (v20) so i had to set it back to the LTS version (v18.16.0) using nvm & maestro doesn't work with iOS 13.7 but worked with 16.4 consistently
I believe I'm having the same problem. The application is installed and opened on the emulated device, but an error occurs in the swipe interaction step.
Maestro: 1.28.0 XCODE: Version 14.2 (14C18) SO: macOS 12.6.3 (21G419)
maestro test ios-advanced-flow.yaml Running on iPhone 14 Pro - iOS 16.2 - 82479ACD-AD49-46B0-AD41-BFF6AFC4E99D
com.github.michaelbull.result.UnwrapException: kotlin.Unit xcuitest.XCTestDriverClient$XCTestDriverUnreachable: Failed to reach out XCUITest Server in RetryOnError
at maestro.drivers.IOSDriver$deviceInfo$2.invoke(IOSDriver.kt:64)
at maestro.drivers.IOSDriver$deviceInfo$2.invoke(IOSDriver.kt:63)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at maestro.drivers.IOSDriver.getDeviceInfo(IOSDriver.kt:63)
at maestro.drivers.IOSDriver.access$getDeviceInfo(IOSDriver.kt:58)
at maestro.drivers.IOSDriver$widthPoints$2.invoke(IOSDriver.kt:68)
at maestro.drivers.IOSDriver$widthPoints$2.invoke(IOSDriver.kt:67)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:74)
at maestro.drivers.IOSDriver.getWidthPoints(IOSDriver.kt:67)
at maestro.drivers.IOSDriver.widthPercentToPoint(IOSDriver.kt:520)
at maestro.drivers.IOSDriver.swipe(IOSDriver.kt:351)
at maestro.Maestro.swipe(Maestro.kt:129)
at maestro.Maestro.swipe$default(Maestro.kt:120)
at maestro.orchestra.Orchestra.swipeCommand(Orchestra.kt:908)
at maestro.orchestra.Orchestra.executeCommand(Orchestra.kt:189)
at maestro.orchestra.Orchestra.runSubFlow(Orchestra.kt:525)
at maestro.orchestra.Orchestra.runFlowCommand(Orchestra.kt:434)
at maestro.orchestra.Orchestra.executeCommand(Orchestra.kt:202)
at maestro.orchestra.Orchestra.executeCommands(Orchestra.kt:150)
at maestro.orchestra.Orchestra.runFlow(Orchestra.kt:93)
at maestro.cli.runner.MaestroCommandRunner.runCommands(MaestroCommandRunner.kt:179)
at maestro.cli.runner.TestRunner$runSingle$result$1.invoke(TestRunner.kt:45)
at maestro.cli.runner.TestRunner$runSingle$result$1.invoke(TestRunner.kt:42)
at maestro.cli.runner.TestRunner.runCatching(TestRunner.kt:138)
at maestro.cli.runner.TestRunner.runSingle(TestRunner.kt:42)
at maestro.cli.command.TestCommand$call$1.invoke(TestCommand.kt:166)
at maestro.cli.command.TestCommand$call$1.invoke(TestCommand.kt:126)
at maestro.cli.session.MaestroSessionManager.newSession(MaestroSessionManager.kt:99)
at maestro.cli.session.MaestroSessionManager.newSession$default(MaestroSessionManager.kt:57)
at maestro.cli.command.TestCommand.call(TestCommand.kt:126)
at maestro.cli.command.TestCommand.call(TestCommand.kt:44)
at picocli.CommandLine.executeUserObject(CommandLine.java:1933)
at picocli.CommandLine.access$1200(CommandLine.java:145)
at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2332)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2326)
at picocli.CommandLine$RunLast.handle(CommandLine.java:2291)
at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2159)
at maestro.cli.DisableAnsiMixin$Companion.executionStrategy(DisableAnsiMixin.kt:22)
at picocli.CommandLine.execute(CommandLine.java:2058)
at maestro.cli.AppKt.main(App.kt:136)
@kzlukosky Did you make sure to close all the terminal/console windows and IDE then reopen? Cause I was still getting the errors until I did that
@KrisLau Yea I closed anything that was open, restarted by computer and tried again with the same issue. Was MacOS, Cocoapods and Ruby the only things you updated/reinstalled?
Did you manage to fix this somehow? I'm having the same issue. cc @tqirazevedo @yarv-dev
Did anyone managed to run Maestro on an Azure Pipeline with macOS-12 or macOS-13?
I'm failling with the same error as some mentioned: Failed to reach out XCUITest Server in RetryOnError
The app seems to complete the "launch app" step but fails on the next one: asserting for visibility on a button.
It's worth mentioning that the same test case runs with no problem on my own machine which has a very similar setup: MacOS 13.3.1 Xcode 14.2 Maestro 1.29.0
Did anyone managed to run Maestro on an Azure Pipeline with macOS-12 or macOS-13?
I'm failling with the same error as some mentioned: Failed to reach out XCUITest Server in RetryOnError
The app seems to complete the "launch app" step but fails on the next one: asserting for visibility on a button.
It's worth mentioning that the same test case runs with no problem on my own machine which has a very similar setup: MacOS 13.3.1 Xcode 14.2 Maestro 1.29.0
Just for an update here: Doing both the installtion of the Facebook IDB Companion and Maestro within the same shell made it so that it didn't fail with 'Failed to reach out XCUITest Server in RetryOnError', which seems really weird as the app did launch on the failing scenario.
if anyone having same issue on 1.30 or 1.31 seems like there is an issue on those versions. going back to 1.29 solved for us
My original problem was not solved, but I have not yet tried newer versions of Maestro. Most posts here are actually unrelated to my original post. Perhaps we should close this thread.
This issue has been automatically locked since there has not been any recent activity after it was closed. If you are still experiencing a similar problem, please file a new issue. Make sure to follow the template and provide all the information necessary to reproduce the issue. Thank you for helping keep us our issue tracker clean!
Maestro: 1.24.0 XCODE: Version 14.2 (14C18) OS: macOS 13.2.1 (22D68)
When I try to run my iOS flow, maestro crashes and I get the following error message:
The output prior to the error message:
Android flow works fine.
I guess the problem occurred after I upgraded to 1.24.0. uninstalling and reinstalling the older version using
export MAESTRO_VERSION={version}; curl -Ls "https://get.maestro.mobile.dev" | bash
did not help either.Any suggestions?