The main Appium script does not exist at '/usr/local/lib/node_modules/appium/build/lib/main.js'

Getting the above error when running the code in TestNG.
It would be helpful if anyone is replying me to resolve this issue.

Thank you !

@Dakshana_Jayakumar Hi Can you please let me know your Appium version

DesiredCapabilities caps = new DesiredCapabilities();

	caps.setCapability("appium:automationName", "UiAutomator2");

	caps.setCapability("platformName", "Android");

	caps.setCapability("appium:app", "path to your application");

            URL remoteUrl = new URL("http://0.0.0.0:4723/wd/hub/");

           AndroidDriver driver = new AndroidDriver(remoteUrl, caps);

just try the above code @Dakshana_Jayakumar

@Iniyavans. This is the appium version : 2.0.0-beta.62

@Iniyavans Is this the way you mentioned ?

Are you using Windows or mac @Dakshana_Jayakumar?

For Windows just change the below line

URL remoteUrl = new URL(“http://127.0.0.0:4723/”); or

URL remoteUrl = new URL(“http://127.0.0.1:4723/”);

if its not works, kindly share the appium log with me

@Iniyavans I am using Mac

[RemoteTestNG] detected TestNG version 7.6.0

SLF4J: No SLF4J providers were found.

SLF4J: Defaulting to no-operation (NOP) logger implementation

SLF4J: See http://www.slf4j.org/codes.html#noProviders for further details.

FAILED CONFIGURATION: @BeforeClass rahulshettyacademy.BaseTest.ConfigureAppium

io.appium.java_client.service.local.InvalidServerInstanceException: The main Appium script does not exist at '/usr/local/lib/node_modules/appium/build/lib/main.js'

at io.appium.java_client.service.local.AppiumServiceBuilder.validatePath(AppiumServiceBuilder.java:131)

at io.appium.java_client.service.local.AppiumServiceBuilder.loadPathToMainScript(AppiumServiceBuilder.java:294)

at io.appium.java_client.service.local.AppiumServiceBuilder.createArgs(AppiumServiceBuilder.java:361)

at io.appium.java_client.service.local.AppiumServiceBuilder.createArgs(AppiumServiceBuilder.java:60)

at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:448)

at rahulshettyacademy.BaseTest.ConfigureAppium(BaseTest.java:31)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:568)

at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)

at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)

at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:361)

at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:296)

at org.testng.internal.invokers.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:180)

at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:122)

at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

at org.testng.TestRunner.privateRun(TestRunner.java:806)

at org.testng.TestRunner.run(TestRunner.java:601)

at org.testng.SuiteRunner.runTest(SuiteRunner.java:433)

at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:427)

at org.testng.SuiteRunner.privateRun(SuiteRunner.java:387)

at org.testng.SuiteRunner.run(SuiteRunner.java:330)

at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)

at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)

at org.testng.TestNG.runSuitesSequentially(TestNG.java:1256)

at org.testng.TestNG.runSuitesLocally(TestNG.java:1176)

at org.testng.TestNG.runSuites(TestNG.java:1099)

at org.testng.TestNG.run(TestNG.java:1067)

at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)

at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)

at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

SKIPPED CONFIGURATION: @AfterClass rahulshettyacademy.BaseTest.tearDown

SKIPPED: rahulshettyacademy.AppiumBasics.WifiSettingsName

io.appium.java_client.service.local.InvalidServerInstanceException: The main Appium script does not exist at '/usr/local/lib/node_modules/appium/build/lib/main.js'

at io.appium.java_client.service.local.AppiumServiceBuilder.validatePath(AppiumServiceBuilder.java:131)

at io.appium.java_client.service.local.AppiumServiceBuilder.loadPathToMainScript(AppiumServiceBuilder.java:294)

at io.appium.java_client.service.local.AppiumServiceBuilder.createArgs(AppiumServiceBuilder.java:361)

at io.appium.java_client.service.local.AppiumServiceBuilder.createArgs(AppiumServiceBuilder.java:60)

at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:448)

at rahulshettyacademy.BaseTest.ConfigureAppium(BaseTest.java:31)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.base/java.lang.reflect.Method.invoke(Method.java:568)

at org.testng.internal.invokers.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:139)

at org.testng.internal.invokers.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:69)

at org.testng.internal.invokers.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:361)

at org.testng.internal.invokers.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:296)

at org.testng.internal.invokers.TestMethodWorker.invokeBeforeClassMethods(TestMethodWorker.java:180)

at org.testng.internal.invokers.TestMethodWorker.run(TestMethodWorker.java:122)

at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)

at org.testng.TestRunner.privateRun(TestRunner.java:806)

at org.testng.TestRunner.run(TestRunner.java:601)

at org.testng.SuiteRunner.runTest(SuiteRunner.java:433)

at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:427)

at org.testng.SuiteRunner.privateRun(SuiteRunner.java:387)

at org.testng.SuiteRunner.run(SuiteRunner.java:330)

at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)

at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:95)

at org.testng.TestNG.runSuitesSequentially(TestNG.java:1256)

at org.testng.TestNG.runSuitesLocally(TestNG.java:1176)

at org.testng.TestNG.runSuites(TestNG.java:1099)

at org.testng.TestNG.run(TestNG.java:1067)

at org.testng.remote.AbstractRemoteTestNG.run(AbstractRemoteTestNG.java:115)

at org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:251)

at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:77)

===============================================

Default test

Tests run: 1, Failures: 0, Skips: 1

Configuration Failures: 1, Skips: 1

===============================================

===============================================

Default suite

Total tests run: 1, Passes: 0, Failures: 0, Skips: 1

Configuration Failures: 1, Skips: 1

===============================================

@Dakshana_Jayakumar Not from Eclipse, Send a Appium log

And How you will start the appium server? @Dakshana_Jayakumar

@Iniyavans Do u mean this ?

Yes, Share the available details after executing the code in eclipse

@Iniyavans I am totally new to this appium and automation testing and all. So I am not aware of totally how to move and what to find in it

@Dakshana_Jayakumar lets connect

I am facing the same issue when starting appium programmatically on mac. but works on windows @Iniyavans

Which appium version you used to run an application? @Zuhair_Merchant

hi, Even i am facing the same issue. Appium was working as expected for me until my recent MAC upgrade. After upgrading my MAC, Appium started failing.

Here is the console log -
io.appium.java_client.service.local.InvalidServerInstanceException: The main Appium script does not exist at ‘/Users/abhinavn/node_modules/appium/build/lib/main.js’

at io.appium.java_client.service.local.AppiumServiceBuilder.validatePath(AppiumServiceBuilder.java:131)
at io.appium.java_client.service.local.AppiumServiceBuilder.loadPathToMainScript(AppiumServiceBuilder.java:289)
at io.appium.java_client.service.local.AppiumServiceBuilder.createArgs(AppiumServiceBuilder.java:381)
at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:358)
at com.citrix.Helpers.AppiumHelper.startAppiumService(AppiumHelper.java:43)
at com.citrix.Standalone.DriverFactory.setup(DriverFactory.java:319)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:132)
at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:61)
at org.testng.internal.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:366)
at org.testng.internal.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:320)
at org.testng.SuiteRunner.privateRun(SuiteRunner.java:327)
at org.testng.SuiteRunner.run(SuiteRunner.java:286)
at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53)
at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96)
at org.testng.TestNG.runSuitesSequentially(TestNG.java:1218)
at org.testng.TestNG.runSuitesLocally(TestNG.java:1140)
at org.testng.TestNG.runSuites(TestNG.java:1069)
at org.testng.TestNG.run(TestNG.java:1037)
at com.intellij.rt.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:66)
at com.intellij.rt.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:110)