IOS Client Send Failed.

Dick McGinnis4 years ago

I installed the Traccar server on my Windows 10 machine and then installed the client app on my iPhone 8. I forwarded the ports in my router and I created inbound firewall rules in Windows to allow the same ports. This works great when my phone is connected to my local network and the client is configured to use my Windows 10 IP address.

After I got this working, I wanted to set up the app to work remotely. I use duckdns to monitor my home public IP address. I disconnected my phone from my wifi and I entered my DDNS information in the app with the same 5055 port number. This does not connect. This is what I was seeing in the logs:

2020-06-21 12:57:14  INFO: [9a1f9f7e] connected
2020-06-21 12:57:14  INFO: [9a1f9f7e: t55 < 174.204.68.119] HEX: 504f5354202f3f69643d3237373538372674696d657374616d703d31353932373638323630266c61743d34372e353430353333266c6f6e3d2d3132322e3237313237332673706565643d302662656172696e673d3026616c7469747564653d32382e31343538313837313033323731352661636375726163793d363526626174743d383520485454502f312e310d0a486f73743a206469636b73746f7765722e6475636b646e732e6f72673a353035350d0a436f6e6e656374696f6e3a206b6565702d616c6976650d0a4163636570743a202a2f2a0d0a557365722d4167656e743a2054726163636172436c69656e742f35352043464e6574776f726b2f313132362044617277696e2f31392e352e300d0a4163636570742d4c616e67756167653a20656e2d75730d0a436f6e74656e742d4c656e6774683a20300d0a4163636570742d456e636f64696e673a20677a69702c206465666c6174650d0a0d0a
2020-06-21 12:58:13  INFO: [9a1f9f7e] disconnected
2020-06-21 12:58:46  INFO: [693c2057] connected
2020-06-21 12:58:46  INFO: [693c2057: t55 < 174.204.68.119] HEX: 504f5354202f3f69643d3237373538372674696d657374616d703d31353932373638323630266c61743d34372e353430353333266c6f6e3d2d3132322e3237313237332673706565643d302662656172696e673d3026616c7469747564653d32382e31343538313837313033323731352661636375726163793d363526626174743d383520485454502f312e310d0a486f73743a206469636b73746f7765722e6475636b646e732e6f72673a353035350d0a436f6e6e656374696f6e3a206b6565702d616c6976650d0a4163636570743a202a2f2a0d0a557365722d4167656e743a2054726163636172436c69656e742f35352043464e6574776f726b2f313132362044617277696e2f31392e352e300d0a4163636570742d4c616e67756167653a20656e2d75730d0a436f6e74656e742d4c656e6774683a20300d0a4163636570742d456e636f64696e673a20677a69702c206465666c6174650d0a0d0a
2020-06-21 12:59:46  INFO: [693c2057] disconnected

This happened over and over again, every time the app tried to send its location, so I know the server is receiving something. I did some googling and I found some troubleshooting steps. I used the hex decoder (https://www.traccar.org/hex-decoder/) and the output was this:

POST /?id=277587×tamp=1592768260&lat=47.540533&lon=-122.271273&speed=0&bearing=0&altitude=28.14581871032715&accuracy=65&batt=85 HTTP/1.1
Host: dickstower.duckdns.org:5055
Connection: keep-alive
Accept: */*
User-Agent: TraccarClient/55 CFNetwork/1126 Darwin/19.5.0
Accept-Language: en-us
Content-Length: 0
Accept-Encoding: gzip, deflate

After decoding the hex, I can plainly see the latitude and longitude of my device. It seems that the server is not decoding the hex for some reason. I found some other troubleshooting steps (https://www.traccar.org/identify-protocol/) and I tried these. In the app, I changed the port to 5001 and then took a look at the logs. The hex is the same but now I'm also getting errors like these:

2020-06-21 13:42:04  INFO: [34ddcc70] connected
2020-06-21 13:42:04  INFO: [34ddcc70: gps103 < 192.168.89.1] HEX: 504f5354202f3f69643d3237373538372674696d657374616d703d31353932373638323630266c61743d34372e353430353333266c6f6e3d2d3132322e3237313237332673706565643d302662656172696e673d3026616c7469747564653d32382e31343538313837313033323731352661636375726163793d363526626174743d383520485454502f312e310d0a486f73743a206469636b73746f7765722e6475636b646e732e6f72673a353035350d0a436f6e6e656374696f6e3a206b6565702d616c6976650d0a4163636570743a202a2f2a0d0a557365722d4167656e743a2054726163636172436c69656e742f35352043464e6574776f726b2f313132362044617277696e2f31392e352e300d0a4163636570742d4c616e67756167653a20656e2d75730d0a436f6e74656e742d4c656e6774683a20300d0a4163636570742d456e636f64696e673a20677a69702c206465666c6174650d0a0d0a
2020-06-21 13:42:04  WARN: [34ddcc70] error - begin 21, end 23, length 9 - StringIndexOutOfBoundsException (... < Gps103ProtocolDecoder:411 < ExtendedObjectDecoder:51 < ... < WrapperContext:102 < ...)
2020-06-21 13:42:04  WARN: [34ddcc70] error - begin 21, end 23, length 2 - StringIndexOutOfBoundsException (... < Gps103ProtocolDecoder:411 < ExtendedObjectDecoder:51 < ... < WrapperContext:102 < ...)
2020-06-21 13:42:04  WARN: [34ddcc70] error - begin 21, end 23, length 2 - StringIndexOutOfBoundsException (... < Gps103ProtocolDecoder:411 < ExtendedObjectDecoder:51 < ... < WrapperContext:102 < ...)
2020-06-21 13:42:04  WARN: [34ddcc70] error - begin 21, end 23, length 19 - StringIndexOutOfBoundsException (... < Gps103ProtocolDecoder:411 < ExtendedObjectDecoder:51 < ... < WrapperContext:102 < ...)
2020-06-21 13:42:04  WARN: [34ddcc70] error - begin 21, end 23, length 2 - StringIndexOutOfBoundsException (... < Gps103ProtocolDecoder:411 < ExtendedObjectDecoder:51 < ... < WrapperContext:102 < ...)
2020-06-21 13:42:04  INFO: [34ddcc70] disconnected
2020-06-21 13:42:35  INFO: [cf146ada] connected
2020-06-21 13:42:35  INFO: [cf146ada: gps103 < 192.168.89.1] HEX: 504f5354202f3f69643d3237373538372674696d657374616d703d31353932373638323630266c61743d34372e353430353333266c6f6e3d2d3132322e3237313237332673706565643d302662656172696e673d3026616c7469747564653d32382e31343538313837313033323731352661636375726163793d363526626174743d383520485454502f312e310d0a486f73743a206469636b73746f7765722e6475636b646e732e6f72673a353035350d0a436f6e6e656374696f6e3a206b6565702d616c6976650d0a4163636570743a202a2f2a0d0a557365722d4167656e743a2054726163636172436c69656e742f35352043464e6574776f726b2f313132362044617277696e2f31392e352e300d0a4163636570742d4c616e67756167653a20656e2d75730d0a436f6e74656e742d4c656e6774683a20300d0a4163636570742d456e636f64696e673a20677a69702c206465666c6174650d0a0d0a
2020-06-21 13:42:35  WARN: [cf146ada] error - begin 21, end 23, length 9 - StringIndexOutOfBoundsException (... < Gps103ProtocolDecoder:411 < ExtendedObjectDecoder:51 < ... < WrapperContext:102 < ...)
2020-06-21 13:42:35  WARN: [cf146ada] error - begin 21, end 23, length 2 - StringIndexOutOfBoundsException (... < Gps103ProtocolDecoder:411 < ExtendedObjectDecoder:51 < ... < WrapperContext:102 < ...)
2020-06-21 13:42:35  WARN: [cf146ada] error - begin 21, end 23, length 2 - StringIndexOutOfBoundsException (... < Gps103ProtocolDecoder:411 < ExtendedObjectDecoder:51 < ... < WrapperContext:102 < ...)
2020-06-21 13:42:35  WARN: [cf146ada] error - begin 21, end 23, length 19 - StringIndexOutOfBoundsException (... < Gps103ProtocolDecoder:411 < ExtendedObjectDecoder:51 < ... < WrapperContext:102 < ...)
2020-06-21 13:42:35  WARN: [cf146ada] error - begin 21, end 23, length 2 - StringIndexOutOfBoundsException (... < Gps103ProtocolDecoder:411 < ExtendedObjectDecoder:51 < ... < WrapperContext:102 < ...)
2020-06-21 13:42:35  INFO: [cf146ada] disconnected

I tried multiple port numbers and I receive the same errors every time. I even changed it back to 5055 as it should be for the client app and I am still receiving these errors. Can anyone give me some help or point me in the right direction?

I only made my text bold to it would stand out from the log file text.

Anton Tananaev4 years ago

Your last log fragment clearly shows that you are using wrong protocol (GPS103).

P.S. please don't abuse formatting. There is no need to make every single word bold.

Dick McGinnis4 years ago

I noticed that as well. But I don't know how to change to the protocol. I only changed the port number in the client. Before, the logs said "t55" after trying a few different ports and putting it back the original 5055 port number, it changed to GPS103. I have it set to go to my DDNS address with port 5055 and I get that message in the logs.

Sorry about the formatting, I wasn't intending to abuse it.

Dick McGinnis4 years ago

Should I use the gps103 port? Since I am using the ios app, I thought I would need to use 5055.

Dick McGinnis4 years ago

I changed it to use the gps103 port (port 5001) and I am still getting the same message in the logs.

2020-06-21 14:28:59  INFO: [a691e687] connected
2020-06-21 14:28:59  INFO: [a691e687: gps103 < 174.204.69.209] HEX: 504f5354202f3f69643d3237373538372674696d657374616d703d31353932373734363635266c61743d34372e353430373639266c6f6e3d2d3132322e3237313334332673706565643d302662656172696e673d3026616c7469747564653d32372e33323032373632363033373539382661636375726163793d363526626174743d363820485454502f312e310d0a486f73743a206469636b73746f7765722e6475636b646e732e6f72673a353030310d0a436f6e6e656374696f6e3a206b6565702d616c6976650d0a4163636570743a202a2f2a0d0a557365722d4167656e743a2054726163636172436c69656e742f35352043464e6574776f726b2f313132362044617277696e2f31392e352e300d0a4163636570742d4c616e67756167653a20656e2d75730d0a436f6e74656e742d4c656e6774683a20300d0a4163636570742d456e636f64696e673a20677a69702c206465666c6174650d0a0d0a
2020-06-21 14:28:59  WARN: [a691e687] error - begin 21, end 23, length 9 - StringIndexOutOfBoundsException (... < Gps103ProtocolDecoder:411 < ExtendedObjectDecoder:51 < ... < WrapperContext:102 < ...)
2020-06-21 14:28:59  WARN: [a691e687] error - begin 21, end 23, length 2 - StringIndexOutOfBoundsException (... < Gps103ProtocolDecoder:411 < ExtendedObjectDecoder:51 < ... < WrapperContext:102 < ...)
2020-06-21 14:28:59  WARN: [a691e687] error - begin 21, end 23, length 2 - StringIndexOutOfBoundsException (... < Gps103ProtocolDecoder:411 < ExtendedObjectDecoder:51 < ... < WrapperContext:102 < ...)
2020-06-21 14:28:59  WARN: [a691e687] error - begin 21, end 23, length 19 - StringIndexOutOfBoundsException (... < Gps103ProtocolDecoder:411 < ExtendedObjectDecoder:51 < ... < WrapperContext:102 < ...)
2020-06-21 14:28:59  WARN: [a691e687] error - begin 21, end 23, length 2 - StringIndexOutOfBoundsException (... < Gps103ProtocolDecoder:411 < ExtendedObjectDecoder:51 < ... < WrapperContext:102 < ...)
2020-06-21 14:28:59  INFO: [a691e687] disconnected
2020-06-21 14:29:30  INFO: [6480c67f] connected
2020-06-21 14:29:30  INFO: [6480c67f: gps103 < 174.204.69.209] HEX: 504f5354202f3f69643d3237373538372674696d657374616d703d31353932373734363635266c61743d34372e353430373639266c6f6e3d2d3132322e3237313334332673706565643d302662656172696e673d3026616c7469747564653d32372e33323032373632363033373539382661636375726163793d363526626174743d363820485454502f312e310d0a486f73743a206469636b73746f7765722e6475636b646e732e6f72673a353030310d0a436f6e6e656374696f6e3a206b6565702d616c6976650d0a4163636570743a202a2f2a0d0a557365722d4167656e743a2054726163636172436c69656e742f35352043464e6574776f726b2f313132362044617277696e2f31392e352e300d0a4163636570742d4c616e67756167653a20656e2d75730d0a436f6e74656e742d4c656e6774683a20300d0a4163636570742d456e636f64696e673a20677a69702c206465666c6174650d0a0d0a
2020-06-21 14:29:30  WARN: [6480c67f] error - begin 21, end 23, length 9 - StringIndexOutOfBoundsException (... < Gps103ProtocolDecoder:411 < ExtendedObjectDecoder:51 < ... < WrapperContext:102 < ...)
2020-06-21 14:29:30  WARN: [6480c67f] error - begin 21, end 23, length 2 - StringIndexOutOfBoundsException (... < Gps103ProtocolDecoder:411 < ExtendedObjectDecoder:51 < ... < WrapperContext:102 < ...)
2020-06-21 14:29:30  WARN: [6480c67f] error - begin 21, end 23, length 2 - StringIndexOutOfBoundsException (... < Gps103ProtocolDecoder:411 < ExtendedObjectDecoder:51 < ... < WrapperContext:102 < ...)
2020-06-21 14:29:30  WARN: [6480c67f] error - begin 21, end 23, length 19 - StringIndexOutOfBoundsException (... < Gps103ProtocolDecoder:411 < ExtendedObjectDecoder:51 < ... < WrapperContext:102 < ...)
2020-06-21 14:29:30  WARN: [6480c67f] error - begin 21, end 23, length 2 - StringIndexOutOfBoundsException (... < Gps103ProtocolDecoder:411 < ExtendedObjectDecoder:51 < ... < WrapperContext:102 < ...)
2020-06-21 14:29:30  INFO: [6480c67f] disconnected
Anton Tananaev4 years ago

You have to use OsmAnd port (5055 by default).

Dick McGinnis4 years ago

Can you explain how I do this? When I set it to use port 5055, I get the errors that I showed above. I’m not sure what OsmAnd is or how to use it.

Anton Tananaev4 years ago

OsmAnd is protocol is using port 5055 by default. If I were to guess, you misconfigured port forwarding or something like that.

Dick McGinnis4 years ago

I have it set to use port 5055. I don’t think I have the forwarding misconfigured as there’s not a lot of configuration to be changed and all of the other port forwarding that I have set up is working as it should. I will double check though. Do both TCP and UPD need to be forwarded? I currently have it set for both and this is really the only part of the configuration that could be wrong. When I use the Traccar port checker, they show as open as they should.

Dick McGinnis4 years ago

I never got this to work on Windows. I finally gave up on the Windows installation.

I installed the Traccar Docker container on my Unraid server behind my NGINX reverse proxy. It is using the same port forwarding (to a different IP address, of course) and my iOS client is using the same settings and it is now working as it should.