Do you think this happens because of the rewponse of osmand protocol ?HTTP/1.1 200 OK
content-length: 0
Even when I enable header output in curl I don't see the header!? Maybe curl drops everything becauso of zero length!? If so maybe a "Done" as returned content of osmand could fix it?!
We have already established the cause. There is no need for guessing.
TL;DR; enabling geocoding breaks local OsmAnd requests in unexpected ways.
EDIT: adding context:
traccar:latest docker container at current date
I'm also stepping on this. This is clearly a bug in how Traccar handles HTTP protocol or generally the incoming requests.
I have nominatim geocoding enabled and forwarding disabled.
If I send a simple GET request to Traccar OsmAnd port via an intermediate TLS termination server (I'm using Traefik) using curl "https://my.public.osmand.server.com/?deviceid=..."
, everything work as expected, including geocoding.
If I send same GET request via curl from very same TLS termination server container shell to Traccar local address (using docker network so I'm sending to http://traccar:5055/?...) it will return status 200 OK (false positive) but only "last update" is updated and sent GPS data is lost. If that is a new device the panel will be completely blank, there won't be point on map but the "last update" will be 0 minutes.
This means that the way my TLS termination server forge the local (forwarded) HTTP request works, but what curl does on same machine for same path will not. I've tried manually setting request headers 1:1 with the ones of the correctly working forwarded request, but won't work as the problem is subtle. This is very misleading and break the service in unexpected ways.
If I disable geocoding it works for both local and forwarded requests.
This is a known issue.
thanks for the feedback.
Is there an issue page I can follow?
Not sure. There might be a GitHub issue for it.
Is there fix for this, or some workaround?
I think i hit this issue when trying to use Mikrotik GPS device to Traccar via its integrated tool fetch.
Our Traccar have Geocoding with Nominatim enabled.
If i disable geocoding - data from mikrotik is OK, otherwise it only update "last update"
on traccar-server.log only hex is logged when geocoding is enabled, if i disable it, it logs and recognize id, data and etc.
I understand problem is disconnects and that mikrotik is not keeping one connection, but connect/disconnect on every update
Just asking is there some workaround?
My idea is to put mikrotik data to another script on server, like proxy - and that script will update traccar - but asking for more smart solution :)
Ok!
At least now it works and thats fantastic!
You are doing a great job.
Thanks again.