Vehicle Appears Moving After GPS Signal Loss Due to Last Valid Position

Hi,

Thank you very much for your excellent work on Traccar. We've identified a recurring issue that causes confusion for our users, and we would like to ask if there's a recommended way to handle it on the backend.

When a vehicle is moving and enters an underground parking lot or an area with no satellite visibility, the GPS device loses its satellite fix. In this situation:

The device continues to send updates over the cellular network (often with valid = false or coordinates 0.0, 0.0),
Traccar correctly filters out these invalid positions,
However, the last valid position (with speed and valid = true) remains visible until the device regains satellite visibility,
As a result, the platform shows the vehicle as still moving, even though it is parked.
Is there a recommended way to mitigate this behavior? For example:

Could Traccar apply logic where, after N seconds without new valid positions, it resets motion = false and sets speed to zero?

Would it be better to handle this with a custom handler or a mechanism that updates state in the absence of valid data?
We'd appreciate any guidance or suggestions on how to best approach this.

Best regards,

Anton Tananaev3 days ago

Why is the confusion only with motion and not other attributes, like speed? Are you sure you're using official release without any modifications?

Hi @Anton, thanks for the quick reply.

Yes, we are using the official version (6.6) with some frontend visual modifications, but the backend logic — especially motion handling — remains unchanged.

The issue is not just visual. What happens is:

When a device enters an area with no satellite visibility (e.g., an underground parking), it loses GPS fix.

It continues sending updates over the network, but these are filtered out by Traccar as invalid (e.g., lat/lon = 0.0 or valid = false), which is correct.

However, since no new valid positions arrive, Traccar keeps showing the last valid position, which still has speed > 0 and motion = true.

As a result, the platform continues to show the vehicle as moving, even though it’s already parked. This is where the confusion comes from — not just motion, but also the last valid speed that remains visible until the next valid fix.

Is there any logic in Traccar that could reset motion = false after a certain time without receiving valid positions?

Or would this require implementing a custom DataHandler to manage stale motion states?

We’d appreciate any advice or suggestions.

Anton Tananaev3 days ago

What do you mean by "show the vehicle as moving"?

By "show the vehicle as moving", I mean that in the user interface (both web and mobile), the device appears with:

motion = true

speed still showing the last valid value (e.g., 35 km/h)

Since no new valid positions are received after GPS signal loss, the system continues to display the last known moving state. From the user's perspective, it looks like the vehicle is still in motion — even if it has been parked for several minutes.

This leads to confusion, especially in reports or monitoring views, where clients expect the system to reflect the actual stopped state once the vehicle loses GPS fix or enters a covered area.

Anton Tananaev3 days ago

It shows motion and speed, but it also shows the timestamp. What you're proposing is to make a very big and often wrong assumption that lost connection means a stop.

motogps.png
motogps2.jpg

I’m attaching an image as a reference to better illustrate what I’m trying to explain.
I look forward to your valuable feedback and guidance.

Anton Tananaev3 days ago

I have already provided my opinion.

Kaldek3 days ago

My advice is to lean on the Tracker's capabilities to stop this from happening. Traccar deals with the data it gets so you need to tweak your trackers to ensure they don't confuse Traccar.

For example, on Teltonika devices, you need to correctly set items such as:

  • Movement Source: Set to "Accelerometer", potentially also "Ignition"
  • Static Navigation Settings: Set to "Enable" and set the Sources to "Movement Source" and "Ignition Source"

This makes teltonika trackers set Movement (Motion) off and ignore GPS position jumps.