Developer Discovers Rust ADS-B Tracker Silently Discarding 16% of Valid Aircraft Data
A developer building a real-time aircraft tracking system in Rust discovered that roughly one in nine valid position measurements was being silently rejected by the system's own validation layer. The tracker used an innovation gate to discard position updates that seemed physically impossible, but the root cause was that each measurement was being timestamped at arrival rather than adjusted for its reported age. ADS-B position records carry a field indicating how old the data already was when received, but in the original codebase that field was parsed and never actually used. Because aircraft positions varied widely in reported age — with some gaps causing apparent sudden jumps in position — the filter incorrectly flagged legitimate updates as implausible and discarded them. The fault went undetected for an extended period because rejections were logged only as a counter, and standard test fixtures used a constant age value that could not reproduce the timing variation responsible for the bug.
This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)
Log in to join the discussion and vote.
Log in