Error: cannot bind listener: Address already in use

Setup: Tests written in Java (1.7), Appium version 1.4.13, Mac OS 10.11.2, Testing on Android devices (physical device), InteliJ IDE

Issues: When I start the Appium server via command line, I get the following error “Error: cannot bind listener: Address already in use” when I run my tests. However, If I use the UI to launch Appium the test cases work fine without any error.

Command used to launch Appium via Terminal: /Applications/Appium.app/Contents/Resources/node/bin/node /Applications/Appium.app/Contents/Resources/node_modules/appium/bin/appium.js --address 127.0.0.1 --bootstrap-port 4723 --full-reset --local-timezone --app /Users//Desktop/Builds/build.apk

Printout showing the server is running:

nfo: Welcome to Appium v1.4.13 (REV c75d8adcb66a75818a542fe1891a34260c21f76a)
info: Appium REST http interface listener started on 127.0.0.1:4723
info: [debug] Non-default server args: {“app”:"/Users/xxxx/Desktop/Builds/build.apk",“address”:“127.0.0.1”,“bootstrapPort”:4723,“fullReset”:true,“localTimezone”:true}
info: Console LogLevel: debug

Capacities in my test:

public void setup() throws Exception {
//Set up desired capabilities and pass the Android app-activity and app-package to Appium
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(“deviceName”, “Nexus”);
capabilities.setCapability(“AppPackage”, “build.apk");
capabilities.setCapability(MobileCapabilityType.NEW_COMMAND_TIMEOUT, “100”);
driver = new AndroidDriver(new URL(“http://127.0.0.1:4723/wd/hub”), capabilities);

Does anyone know why I’m ONLY getting this error when i start the Appium server via Terminal???

org.openqa.selenium.SessionNotCreatedException: A new session could not be created. (Original error: Command failed: /bin/sh -c /Users//Library/Android/sdk/platform-tools/adb -s 84B5T15A29018919 forward tcp:4723 tcp:4724
error: cannot bind listener: Address already in use
) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 40.55 seconds
Build info: version: ‘2.48.2’, revision: ‘41bccdd’, time: ‘2015-10-09 19:59:12’
System info: host: ‘N/A’, ip: ‘N/A’, os.name: ‘Mac OS X’, os.arch: ‘x86_64’, os.version: ‘10.11.2’, java.version: ‘1.7.0_79’
Driver info: io.appium.java_client.android.AndroidDriver

@CPTester try setting --bootstrap-port to 673324 because it uses 4723 for appium process.

1 Like

Thanks for the reply @salmanchauhan

I tried to change the port but i’m still running into the same issue.

Here’s the new command used to start Appium server: /Applications/Appium.app/Contents/Resources/node/bin/node /Applications/Appium.app/Contents/Resources/node_modules/appium/bin/appium.js --address 127.0.0.1 --bootstrap-port 6942 --full-reset --local-timezone --app /Users//Desktop/Builds/build.apk

Any other suggestions? Any help at this point would be greatly appreciated as i’m going on day two of road block here.

@CPTester
try this command
appium --session-override -p 4743 --chromedriver-port 62366 --tmp /tmp/driver4743/ --command-timeout 600 --session-override

also try specifying in setup as below

capabilities = DesiredCapabilities.android();
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, “android”);
capabilities.setCapability(“deviceName”, DeviceName);
capabilities.setCapability(MobileCapabilityType.APP_PACKAGE, AppPackageOfAndoidapp);
capabilities.setCapability(MobileCapabilityType.APP_ACTIVITY, LauncherActivityName);
driver = new AndroidDriver(remote_grid, capabilities);

Thanks for the help! I was able to fix the problem by not specifying the ‘–bootstrap-port’. Here’s the working command i’m now using…

Command used to launch Appium via Terminal: /Applications/Appium.app/Contents/Resources/node/bin/node /Applications/Appium.app/Contents/Resources/node_modules/appium/bin/appium.js --address 127.0.0.1 --port 4723 --full-reset --local-timezone --app /Users//Desktop/Builds/build.apk