loadLayers did `if (!resp.ok) return`, so a 413 or 400 from
/weather/cells left the map blank with no console error and no UI
feedback — indistinguishable from "no data for this forecast hour".
This is reachable in normal use: the hook sets minZoom: 4, and a z=4
viewport on a wide window clamps to ~4500 sq deg, over GridBounds'
4000 sq deg cap, so zooming all the way out silently drops the
overlay. Zooming back in restores it, which makes the failure look
intermittent and untraceable.
Log the status, requested layers and URL so the next report is
diagnosable from the browser console.