Since it is possible to detect the difference between not being able to load the firmwares.json file at all, and the "devices" object being temporarily null (either by detecting that the "iTunes" object has data, or by detecting that a "devices" key was present with a null value as opposed to not existing at all), I think it would be nice (and easy) for mist to present a different more informative error message stating the ipsw.me is currently updating the firmware information and to try again later today (or something like that).
When ipsw.me is updating firmware information for new releases, the v3 API can take a few hours to be updated (because of slower caching: https://twitter.com/icj_/status/1368997997200171016 & https://twitter.com/icj_/status/1176583207531241479 & https://twitter.com/icj_/status/1440043400049295372)
While the updates are being processed, the "devices" object returned from https://api.ipsw.me/v3/firmwares.json/condensed will be
null
, but the "iTunes" object will still have data in it.Currently, when the "devices" object is
null
,mist
shows an error that "There was an error retrieving firmwares from https://api.ipsw.me/v3/firmwares.json/condensed..." from: https://github.com/ninxsoft/Mist/blob/4ad02fd4bae57368be932be340ce061c29097138/Mist/Helpers/HTTP.swift#L36Since it is possible to detect the difference between not being able to load the firmwares.json file at all, and the "devices" object being temporarily
null
(either by detecting that the "iTunes" object has data, or by detecting that a "devices" key was present with anull
value as opposed to not existing at all), I think it would be nice (and easy) formist
to present a different more informative error message stating the ipsw.me is currently updating the firmware information and to try again later today (or something like that).