A screen’s last_ping used to be null until the screen first checked in, which made null a
usable signal for “this screen has never connected”. It is now always a timestamp: screens start
with theirs set to when the screen was created.
This affects last_ping on the v3 screens API and on the v4 screens and screen_statuses
resources. The field’s type and the response shape are unchanged, only the values.
If this affects you: an integration treating a null
last_pingas “never connected” loses that signal, andis_onlinedoes not replace it. A screen created in the last four hours reports online whether or not the device has ever reached us, because the seeded timestamp is recent. The closest check is comparinglast_pingwith the screen’s creation time: a screen that has never checked in still carries the timestamp it was created with.