A dark camera is not the same as a quiet street. Most of the time, when a tile in the grid goes black or grey or — worse — perfectly still, the city behind it is carrying on exactly as it was a minute earlier. The camera has gone dark, not the world. Learning to read the difference is half of what makes a CCTV grid useful.
There are two families of reasons a camera stops sending pictures: technical and administrative. Both look identical from the outside. Both leave you with a frame that won't update. The grammar to tell them apart lives in the small details around the edge.
The technical reasons are the boring ones, and the most common. Network drops are first. The camera lives at the top of a pole, the pole is fed by a fibre run buried under a pavement, and pavements in Jakarta are renovated, dug up, and repaved on a schedule no one publishes. A backhoe through a duct will take a corridor of cameras offline for an afternoon. Power is second. PLN cuts happen. Some poles have backup batteries, most don't, and a four-hour outage in a substation will dim a whole neighbourhood's worth of feeds at once. Maintenance is third — a lens that needs cleaning, a heatsink that has finally given up, an SD card that has run out of writes after four years of continuous logging. None of these are conspiracies. They are just the slow attrition of hardware in a humid city.
The administrative reasons are the more interesting half. Some cameras are inside declared privacy zones — embassy perimeters, certain hospital entrances, a few military and police compounds — and the upstream feed is muted at the source. You will never see those frames, regardless of network health. Other cameras get switched off temporarily during ongoing investigations, when a court order or a police request asks the operator to suspend public access until further notice. Both look exactly like a dropped network from the outside. The only tell is duration: a network drop restores within hours, an administrative mute lasts days or weeks.
There is a third state, the most insidious, called the frozen frame. The connection is intact, the upstream is responding, the HTTP request returns a perfectly valid JPEG — but the JPEG is the same JPEG it returned five minutes ago, and the one before that. The camera process has crashed and is serving a cached image. To detect this, do not look at whether an image returns. Look at which image returns. Open the snapshot URL twice, thirty seconds apart, save both files, and compare them byte for byte. If they are identical, the camera is frozen.
A simpler heuristic: a true outage usually returns an HTTP 404 or a connection timeout. The Streetside index will mark these cameras as offline within a minute. A frozen camera returns 200 OK and a valid image, and is much harder to spot. We are working on a frame-hash check that will catch most of these, but in the meantime: if a feed looks too still to be Jakarta, trust your instinct. Jakarta is never that still. Look for the small things — a pedestrian's foot mid-step, the angle of a flag, the second hand of any visible clock. If none of those move across two refreshes, the camera has stopped, even if the request returned a perfectly valid frame.
There is also a fourth, rarer state worth naming: the rotated camera. Some PTZ (pan-tilt-zoom) units in the network are operator-controlled, and an operator occasionally swings them away from the public-facing scene to look at something else — a back alley, a parked vehicle, a roof. The feed is alive, the frame is fresh, but it is no longer showing the corner you expected. From the index it looks like the camera is broken because the still you remember has been replaced with an unfamiliar wall. Give it ten minutes and it usually swings back.
The honest answer to "why is this camera dark" is almost always mundane — a cable, a fuse, a forgotten reboot. Sometimes it is a deliberate quiet. Either way, the absence of an image is itself a kind of information. The grid does not just show you what is happening. It also shows you, in the dark squares, where the city has chosen, or been forced, to stop watching. Read the gaps the same way you read the frames.