Getting a server 500 status when running Appium with Selenium grid

Hi guys I am new to Appium, I am having some trouble setting up Appium with Selenium grid.
I get my nodes to register to the hub but when I try to run my tests, I get a server status 500 error.
I am using rspec for my test suite.

08:35:53.228 INFO - Selenium build info: version: '3.3.1', revision: '5234b32'
08:35:53.229 INFO - Launching Selenium Grid hub
2017-04-04 08:35:53.662:INFO::main: Logging initialized @600ms to org.seleniumhq.jetty9.util.log.StdErrLog
08:35:53.672 INFO - Will listen on 4444
2017-04-04 08:35:53.701:INFO:osjs.Server:main: jetty-9.2.20.v20161216
2017-04-04 08:35:53.721:INFO:osjs.session:main: DefaultSessionIdManager workerName=node0
2017-04-04 08:35:53.721:INFO:osjs.session:main: No SessionScavenger set, using defaults
2017-04-04 08:35:53.723:INFO:osjs.session:main: Scavenging every 660000ms
2017-04-04 08:35:53.727:INFO:osjsh.ContextHandler:main: Started o.s.j.s.ServletContextHandler@44a3ec6b{/,null,AVAILABLE}
2017-04-04 08:35:53.735:INFO:osjs.AbstractConnector:main: Started ServerConnector@60438a68{HTTP/1.1,[http/1.1]}{0.0.0.0:4444}
2017-04-04 08:35:53.735:INFO:osjs.Server:main: Started @673ms
08:35:53.736 INFO - Nodes should register to http://172.17.0.1:4444/grid/register/
08:35:53.736 INFO - Selenium Grid hub is up and running
08:36:01.897 INFO - Got a request to create a new session: Capabilities [{appPackage=com.ttrumpet.qa, app=/home/dewald/test_ttrumpet_portals/rspec_automation/link_android_appium_tests/app-qa-release.apk, rotatable=false, noReset=true, version=, deviceName=LGH81510276e42, platform=ANY, appActivity=com.ttrumpet.sa.SplashScreen, nativeEvents=false, newCommandTimeout=10000, browserName=, takesScreenshot=true, javascriptEnabled=true, platformName=android, cssSelectorsEnabled=true}]
08:36:05.859 INFO - Got a request to create a new session: Capabilities [{appPackage=com.ttrumpet.qa, app=/home/dewald/test_ttrumpet_portals/rspec_automation/link_android_appium_tests/app-qa-release.apk, rotatable=false, noReset=true, version=, deviceName=LGH81510276e42, platform=ANY, appActivity=com.ttrumpet.sa.SplashScreen, nativeEvents=false, newCommandTimeout=10000, browserName=, takesScreenshot=true, javascriptEnabled=true, platformName=android, cssSelectorsEnabled=true}]
08:36:06.858 DEBUG - getting the following registration request  : {"capabilities":[{"browserName":"Android","version":"6","maxInstances":1,"platform":"ANDROID","deviceName":"emulator-5556"}],"configuration":{"nodeTimeOut":120,"NodePolling":2000,"cleanUpCycle":2000,"timeout":30000,"proxy":"org.openqa.grid.selenium.proxy.DefaultRemoteProxy","url":"http://0.0.0.0:4723/wd/hub","port":4723,"maxSession":1,"register":true,"registerCycle":10000,"hubPort":4444,"hubHost":"172.17.0.1","host":"0.0.0.0","id":"http://0.0.0.0:4723"}}
08:36:06.873 DEBUG - Using class org.openqa.grid.selenium.proxy.DefaultRemoteProxy
08:36:06.874 DEBUG - starting cleanup thread
08:36:06.875 DEBUG - cleanup thread starting...
08:36:06.876 INFO - Registered a node http://0.0.0.0:4723
08:36:06.877 DEBUG - proxy added http://0.0.0.0:4723
08:36:11.881 DEBUG - Closing connections idle longer than 100 MILLISECONDS
08:36:11.902 DEBUG - CookieSpec selected: default
08:36:11.915 DEBUG - Auth cache not set in the context
08:36:11.916 DEBUG - Connection request: [route: {}->http://0.0.0.0:4723][total kept alive: 0; route allocated: 0 of 2000; total allocated: 0 of 2000]
08:36:11.925 DEBUG - Connection leased: [id: 0][route: {}->http://0.0.0.0:4723][total kept alive: 0; route allocated: 1 of 2000; total allocated: 1 of 2000]
08:36:11.926 DEBUG - Opening connection {}->http://0.0.0.0:4723
08:36:11.927 DEBUG - Connecting to /0.0.0.0:4723
08:36:11.928 DEBUG - Connection established 127.0.0.1:49800<->127.0.1.1:4723
08:36:11.928 DEBUG - http-outgoing-0: set socket timeout to 5000
08:36:11.928 DEBUG - Executing request GET /wd/hub/status HTTP/1.1
08:36:11.928 DEBUG - Target auth state: UNCHALLENGED
08:36:11.929 DEBUG - Proxy auth state: UNCHALLENGED
08:36:11.930 DEBUG - http-outgoing-0 >> GET /wd/hub/status HTTP/1.1
08:36:11.930 DEBUG - http-outgoing-0 >> Host: 0.0.0.0:4723
08:36:11.930 DEBUG - http-outgoing-0 >> Connection: Keep-Alive
08:36:11.930 DEBUG - http-outgoing-0 >> User-Agent: Apache-HttpClient/4.5.2 (Java/1.8.0_121)
08:36:11.930 DEBUG - http-outgoing-0 >> Accept-Encoding: gzip,deflate
08:36:11.930 DEBUG - http-outgoing-0 >> "GET /wd/hub/status HTTP/1.1[\r][\n]"
08:36:11.930 DEBUG - http-outgoing-0 >> "Host: 0.0.0.0:4723[\r][\n]"
08:36:11.930 DEBUG - http-outgoing-0 >> "Connection: Keep-Alive[\r][\n]"
08:36:11.931 DEBUG - http-outgoing-0 >> "User-Agent: Apache-HttpClient/4.5.2 (Java/1.8.0_121)[\r][\n]"
08:36:11.931 DEBUG - http-outgoing-0 >> "Accept-Encoding: gzip,deflate[\r][\n]"
08:36:11.931 DEBUG - http-outgoing-0 >> "[\r][\n]"
08:36:11.952 DEBUG - http-outgoing-0 << "HTTP/1.1 200 OK[\r][\n]"
08:36:11.952 DEBUG - http-outgoing-0 << "X-Powered-By: Express[\r][\n]"
08:36:11.952 DEBUG - http-outgoing-0 << "Access-Control-Allow-Origin: *[\r][\n]"
08:36:11.952 DEBUG - http-outgoing-0 << "Access-Control-Allow-Methods: GET,POST,PUT,OPTIONS,DELETE[\r][\n]"
08:36:11.952 DEBUG - http-outgoing-0 << "Access-Control-Allow-Headers: origin, content-type, accept[\r][\n]"
08:36:11.952 DEBUG - http-outgoing-0 << "Content-Type: application/json; charset=utf-8[\r][\n]"
08:36:11.952 DEBUG - http-outgoing-0 << "Content-Length: 121[\r][\n]"
08:36:11.952 DEBUG - http-outgoing-0 << "ETag: W/"79-p3jDpMmo0GggNbmi4lEVmg"[\r][\n]"
08:36:11.952 DEBUG - http-outgoing-0 << "Date: Tue, 04 Apr 2017 06:36:11 GMT[\r][\n]"
08:36:11.952 DEBUG - http-outgoing-0 << "Connection: keep-alive[\r][\n]"
08:36:11.952 DEBUG - http-outgoing-0 << "[\r][\n]"
08:36:11.952 DEBUG - http-outgoing-0 << "{"status":0,"value":{"build":{"version":"1.6.3","revision":"b421e7e2146de291a1a2cd0ca7ca2e0972b74465"}},"sessionId":null}"
08:36:11.954 DEBUG - http-outgoing-0 << HTTP/1.1 200 OK
08:36:11.954 DEBUG - http-outgoing-0 << X-Powered-By: Express
08:36:11.954 DEBUG - http-outgoing-0 << Access-Control-Allow-Origin: *
08:36:11.954 DEBUG - http-outgoing-0 << Access-Control-Allow-Methods: GET,POST,PUT,OPTIONS,DELETE
08:36:11.954 DEBUG - http-outgoing-0 << Access-Control-Allow-Headers: origin, content-type, accept
08:36:11.954 DEBUG - http-outgoing-0 << Content-Type: application/json; charset=utf-8
08:36:11.954 DEBUG - http-outgoing-0 << Content-Length: 121
08:36:11.954 DEBUG - http-outgoing-0 << ETag: W/"79-p3jDpMmo0GggNbmi4lEVmg"
08:36:11.954 DEBUG - http-outgoing-0 << Date: Tue, 04 Apr 2017 06:36:11 GMT
08:36:11.954 DEBUG - http-outgoing-0 << Connection: keep-alive
08:36:11.963 DEBUG - Connection can be kept alive indefinitely
08:36:11.965 DEBUG - Connection [id: 0][route: {}->http://0.0.0.0:4723] can be kept alive indefinitely
08:36:11.965 DEBUG - Connection released: [id: 0][route: {}->http://0.0.0.0:4723][total kept alive: 1; route allocated: 1 of 2000; total allocated: 1 of 2000]
08:36:14.740 INFO - Got a request to create a new session: Capabilities [{appPackage=com.ttrumpet.qa, app=/home/dewald/test_ttrumpet_portals/rspec_automation/link_android_appium_tests/app-qa-release.apk, rotatable=false, noReset=true, version=, deviceName=LGH81510276e42, platform=ANY, appActivity=com.ttrumpet.sa.SplashScreen, nativeEvents=false, newCommandTimeout=10000, browserName=, takesScreenshot=true, javascriptEnabled=true, platformName=android, cssSelectorsEnabled=true}]
08:36:14.740 DEBUG - Available nodes: [http://0.0.0.0:4723]
08:36:14.740 DEBUG - Trying to create a new session on node http://0.0.0.0:4723
08:36:14.741 INFO - Trying to create a new session on test slot {browserName=Android, maxInstances=1, version=6, deviceName=emulator-5556, platform=ANDROID}
08:36:14.743 DEBUG - Closing connections idle longer than 100 MILLISECONDS
08:36:14.743 DEBUG - http-outgoing-0: Close connection
08:36:14.744 DEBUG - CookieSpec selected: default
08:36:14.745 DEBUG - Auth cache not set in the context
08:36:14.745 DEBUG - Connection request: [route: {}->http://0.0.0.0:4723][total kept alive: 0; route allocated: 0 of 2000; total allocated: 0 of 2000]
08:36:14.745 DEBUG - Connection leased: [id: 1][route: {}->http://0.0.0.0:4723][total kept alive: 0; route allocated: 1 of 2000; total allocated: 1 of 2000]
08:36:14.745 DEBUG - Opening connection {}->http://0.0.0.0:4723
08:36:14.745 DEBUG - Connecting to /0.0.0.0:4723
08:36:14.746 DEBUG - Connection established 127.0.0.1:49890<->127.0.1.1:4723
08:36:14.746 DEBUG - http-outgoing-1: set socket timeout to 0
08:36:14.746 DEBUG - Executing request POST /wd/hub/session HTTP/1.1
08:36:14.746 DEBUG - Target auth state: UNCHALLENGED
08:36:14.746 DEBUG - Proxy auth state: UNCHALLENGED
08:36:14.746 DEBUG - http-outgoing-1 >> POST /wd/hub/session HTTP/1.1
08:36:14.746 DEBUG - http-outgoing-1 >> Accept: application/json
08:36:14.746 DEBUG - http-outgoing-1 >> User-Agent: appium/ruby_lib/9.3.6
08:36:14.746 DEBUG - http-outgoing-1 >> Connection: close
08:36:14.746 DEBUG - http-outgoing-1 >> Host: localhost:4444
08:36:14.746 DEBUG - http-outgoing-1 >> Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3
08:36:14.746 DEBUG - http-outgoing-1 >> Content-Type: application/json; charset=UTF-8
08:36:14.746 DEBUG - http-outgoing-1 >> Content-Length: 463
08:36:14.747 DEBUG - http-outgoing-1 >> "POST /wd/hub/session HTTP/1.1[\r][\n]"
08:36:14.747 DEBUG - http-outgoing-1 >> "Accept: application/json[\r][\n]"
08:36:14.747 DEBUG - http-outgoing-1 >> "User-Agent: appium/ruby_lib/9.3.6[\r][\n]"
08:36:14.747 DEBUG - http-outgoing-1 >> "Connection: close[\r][\n]"
08:36:14.747 DEBUG - http-outgoing-1 >> "Host: localhost:4444[\r][\n]"
08:36:14.747 DEBUG - http-outgoing-1 >> "Accept-Encoding: gzip;q=1.0,deflate;q=0.6,identity;q=0.3[\r][\n]"
08:36:14.747 DEBUG - http-outgoing-1 >> "Content-Type: application/json; charset=UTF-8[\r][\n]"
08:36:14.747 DEBUG - http-outgoing-1 >> "Content-Length: 463[\r][\n]"
08:36:14.748 DEBUG - http-outgoing-1 >> "[\r][\n]"
08:36:14.748 DEBUG - http-outgoing-1 >> "{"desiredCapabilities":{"browserName":"","version":"","platform":"ANY","javascriptEnabled":true,"cssSelectorsEnabled":true,"takesScreenshot":true,"nativeEvents":false,"rotatable":false,"platformName":"android","deviceName":"LGH81510276e42","appPackage":"com.ttrumpet.qa","appActivity":"com.ttrumpet.sa.SplashScreen","noReset":true,"newCommandTimeout":10000,"app":"/home/dewald/test_ttrumpet_portals/rspec_automation/link_android_appium_tests/app-qa-release.apk"}}"
08:36:16.965 DEBUG - Closing connections idle longer than 100 MILLISECONDS
08:36:16.966 DEBUG - CookieSpec selected: default
08:36:16.966 DEBUG - Auth cache not set in the context
08:36:16.966 DEBUG - Connection request: [route: {}->http://0.0.0.0:4723][total kept alive: 0; route allocated: 1 of 2000; total allocated: 1 of 2000]
08:36:16.966 DEBUG - Connection leased: [id: 2][route: {}->http://0.0.0.0:4723][total kept alive: 0; route allocated: 2 of 2000; total allocated: 2 of 2000]
08:36:16.966 DEBUG - Opening connection {}->http://0.0.0.0:4723
08:36:16.966 DEBUG - Connecting to /0.0.0.0:4723
08:36:16.967 DEBUG - Connection established 127.0.0.1:50168<->127.0.1.1:4723
08:36:16.967 DEBUG - http-outgoing-2: set socket timeout to 5000
08:36:16.967 DEBUG - Executing request GET /wd/hub/status HTTP/1.1
08:36:16.967 DEBUG - Target auth state: UNCHALLENGED
08:36:16.967 DEBUG - Proxy auth state: UNCHALLENGED
08:36:16.967 DEBUG - http-outgoing-2 >> GET /wd/hub/status HTTP/1.1
08:36:16.967 DEBUG - http-outgoing-2 >> Host: 0.0.0.0:4723
08:36:16.967 DEBUG - http-outgoing-2 >> Connection: Keep-Alive
08:36:16.967 DEBUG - http-outgoing-2 >> User-Agent: Apache-HttpClient/4.5.2 (Java/1.8.0_121)
08:36:16.967 DEBUG - http-outgoing-2 >> Accept-Encoding: gzip,deflate
08:36:16.968 DEBUG - http-outgoing-2 >> "GET /wd/hub/status HTTP/1.1[\r][\n]"
08:36:16.968 DEBUG - http-outgoing-2 >> "Host: 0.0.0.0:4723[\r][\n]"
08:36:16.968 DEBUG - http-outgoing-2 >> "Connection: Keep-Alive[\r][\n]"
08:36:16.968 DEBUG - http-outgoing-2 >> "User-Agent: Apache-HttpClient/4.5.2 (Java/1.8.0_121)[\r][\n]"
08:36:16.968 DEBUG - http-outgoing-2 >> "Accept-Encoding: gzip,deflate[\r][\n]"
08:36:16.968 DEBUG - http-outgoing-2 >> "[\r][\n]"
08:36:17.207 DEBUG - http-outgoing-1 << "HTTP/1.1 200 OK[\r][\n]"
08:36:17.208 DEBUG - http-outgoing-1 << "X-Powered-By: Express[\r][\n]"
08:36:17.209 DEBUG - http-outgoing-1 << "Access-Control-Allow-Origin: *[\r][\n]"
08:36:17.209 DEBUG - http-outgoing-1 << "Access-Control-Allow-Methods: GET,POST,PUT,OPTIONS,DELETE[\r][\n]"
08:36:17.209 DEBUG - http-outgoing-1 << "Access-Control-Allow-Headers: origin, content-type, accept[\r][\n]"
08:36:17.210 DEBUG - http-outgoing-1 << "Vary: X-HTTP-Method-Override[\r][\n]"
08:36:17.210 DEBUG - http-outgoing-1 << "Content-Type: application/json; charset=utf-8[\r][\n]"
08:36:17.210 DEBUG - http-outgoing-1 << "Content-Length: 1142[\r][\n]"
08:36:17.211 DEBUG - http-outgoing-1 << "ETag: W/"476-7fD+vsBoZmHXr4rwYZMUuw"[\r][\n]"
08:36:17.211 DEBUG - http-outgoing-1 << "Date: Tue, 04 Apr 2017 06:36:17 GMT[\r][\n]"
08:36:17.211 DEBUG - http-outgoing-1 << "Connection: close[\r][\n]"
08:36:17.211 DEBUG - http-outgoing-1 << "[\r][\n]"
08:36:17.212 DEBUG - http-outgoing-1 << "{"status":0,"value":{"platform":"ANY","webStorageEnabled":false,"takesScreenshot":true,"javascriptEnabled":true,"databaseEnabled":false,"networkConnectionEnabled":true,"locationContextEnabled":false,"warnings":{},"desired":{"browserName":"","version":"","platform":"ANY","javascriptEnabled":true,"cssSelectorsEnabled":true,"takesScreenshot":true,"nativeEvents":false,"rotatable":false,"platformName":"android","deviceName":"LGH81510276e42","appPackage":"com.ttrumpet.qa","appActivity":"com.ttrumpet.sa.SplashScreen","noReset":true,"newCommandTimeout":10000,"app":"/home/dewald/test_ttrumpet_portals/rspec_automation/link_android_appium_tests/app-qa-release.apk"},"browserName":"","version":"","cssSelectorsEnabled":true,"nativeEvents":false,"rotatable":false,"platformName":"android","deviceName":"emulator-5556","appPackage":"com.ttrumpet.qa","appActivity":"com.ttrumpet.sa.SplashScreen","noReset":true,"newCommandTimeout":10000,"app":"/home/dewald/test_ttrumpet_portals/rspec_automation/link_android_appium_tests/app-qa-release.apk","deviceUDID":"emulator-5556","platformVersion":"5.1.1"},"sessionId":"90a77ee1-4547-4298-a9df-78440817bfea"}"
08:36:17.212 DEBUG - http-outgoing-1 << HTTP/1.1 200 OK
08:36:17.213 DEBUG - http-outgoing-1 << X-Powered-By: Express
08:36:17.213 DEBUG - http-outgoing-1 << Access-Control-Allow-Origin: *
08:36:17.213 DEBUG - http-outgoing-1 << Access-Control-Allow-Methods: GET,POST,PUT,OPTIONS,DELETE
08:36:17.213 DEBUG - http-outgoing-1 << Access-Control-Allow-Headers: origin, content-type, accept
08:36:17.213 DEBUG - http-outgoing-1 << Vary: X-HTTP-Method-Override
08:36:17.213 DEBUG - http-outgoing-1 << Content-Type: application/json; charset=utf-8
08:36:17.214 DEBUG - http-outgoing-1 << Content-Length: 1142
08:36:17.214 DEBUG - http-outgoing-1 << ETag: W/"476-7fD+vsBoZmHXr4rwYZMUuw"
08:36:17.214 DEBUG - http-outgoing-1 << Date: Tue, 04 Apr 2017 06:36:17 GMT
08:36:17.214 DEBUG - http-outgoing-1 << Connection: close
08:36:17.228 DEBUG - http-outgoing-2 << "HTTP/1.1 200 OK[\r][\n]"
08:36:17.228 DEBUG - http-outgoing-2 << "X-Powered-By: Express[\r][\n]"
08:36:17.228 DEBUG - http-outgoing-2 << "Access-Control-Allow-Origin: *[\r][\n]"
08:36:17.228 DEBUG - http-outgoing-2 << "Access-Control-Allow-Methods: GET,POST,PUT,OPTIONS,DELETE[\r][\n]"
08:36:17.228 DEBUG - http-outgoing-2 << "Access-Control-Allow-Headers: origin, content-type, accept[\r][\n]"
08:36:17.228 DEBUG - http-outgoing-2 << "Content-Type: application/json; charset=utf-8[\r][\n]"
08:36:17.228 DEBUG - http-outgoing-2 << "Content-Length: 121[\r][\n]"
08:36:17.228 DEBUG - http-outgoing-2 << "ETag: W/"79-p3jDpMmo0GggNbmi4lEVmg"[\r][\n]"
08:36:17.228 DEBUG - http-outgoing-2 << "Date: Tue, 04 Apr 2017 06:36:17 GMT[\r][\n]"
08:36:17.228 DEBUG - http-outgoing-2 << "Connection: keep-alive[\r][\n]"
08:36:17.228 DEBUG - http-outgoing-2 << "[\r][\n]"
08:36:17.228 DEBUG - http-outgoing-2 << "{"status":0,"value":{"build":{"version":"1.6.3","revision":"b421e7e2146de291a1a2cd0ca7ca2e0972b74465"}},"sessionId":null}"
08:36:17.229 DEBUG - http-outgoing-2 << HTTP/1.1 200 OK
08:36:17.229 DEBUG - http-outgoing-2 << X-Powered-By: Express
08:36:17.229 DEBUG - http-outgoing-2 << Access-Control-Allow-Origin: *
08:36:17.229 DEBUG - http-outgoing-2 << Access-Control-Allow-Methods: GET,POST,PUT,OPTIONS,DELETE
08:36:17.229 DEBUG - http-outgoing-2 << Access-Control-Allow-Headers: origin, content-type, accept
08:36:17.229 DEBUG - http-outgoing-2 << Content-Type: application/json; charset=utf-8
08:36:17.229 DEBUG - http-outgoing-2 << Content-Length: 121
08:36:17.229 DEBUG - http-outgoing-2 << ETag: W/"79-p3jDpMmo0GggNbmi4lEVmg"
08:36:17.229 DEBUG - http-outgoing-2 << Date: Tue, 04 Apr 2017 06:36:17 GMT
08:36:17.229 DEBUG - http-outgoing-2 << Connection: keep-alive
08:36:17.229 DEBUG - Connection can be kept alive indefinitely
08:36:17.229 DEBUG - Connection [id: 2][route: {}->http://0.0.0.0:4723] can be kept alive indefinitely
08:36:17.229 DEBUG - Connection released: [id: 2][route: {}->http://0.0.0.0:4723][total kept alive: 1; route allocated: 2 of 2000; total allocated: 2 of 2000]
08:36:17.246 DEBUG - http-outgoing-1: Close connection
08:36:17.246 DEBUG - Connection discarded
08:36:17.246 DEBUG - Connection released: [id: 1][route: {}->http://0.0.0.0:4723][total kept alive: 1; route allocated: 1 of 2000; total allocated: 1 of 2000]
08:36:17.250 DEBUG - Session [(null externalkey)] not available and is not among the last 1000 terminated sessions.
Active sessions are[ext. key 90a77ee1-4547-4298-a9df-78440817bfea]