← Research

Research note · July 17, 2026

The photos that weren't actually missing

A batch of CC0 Getty photographs looked permanently broken on LinkedCulture. They weren't. A single character in an image-sizing request was the difference between a working photo and a blank box.

iiifgettyimagedeliverydataquality


A visitor flagged it plainly: a person page on LinkedCulture with dozens of blank gray boxes where photographs should have been. All Getty Museum, all supposedly open access, all just... gone. The obvious read is the one I'd already half-written into a code comment weeks earlier, guessing that some slice of stored Getty URLs were simply dead links.

They weren't dead. They were being rejected for a reason that had nothing to do with the source museum, or with copyright, or with anything actually wrong with the object.

LinkedCulture requests Getty's thumbnails through their IIIF Image API service, asking for a fixed 808-pixel-wide version of whatever the source image is. That works for most objects. It failed outright, with an HTTP 400, for every Getty photograph whose original scan is narrower than 808 pixels, which turns out to describe a fair number of 19th-century daguerreotypes and early photographic prints in the collection, since museums scan at whatever resolution the fragile original supports, not at whatever a modern web thumbnail wants.

The IIIF Image API spec has a specific rule for this. Section 4.2 on size requests: "Sizes prefixed with ^ allow upscaling of the extracted region when its pixel dimensions are less than the pixel dimensions of the scaled region." Ask for full/808,/0/default.jpg on a 600-pixel-wide source and a compliant server has to refuse it, because you're asking for pixels that don't exist without saying you're okay with that. Ask for full/^808,/0/default.jpg instead, and the same server happily upscales and returns an image.

Nobody had opted in to upscaling. So a real, working, CC0 photograph returned a 400 error every single time, and the front end quietly rendered nothing.

Jacob Byerly, City View Possibly Frederick Maryland, about 1855, daguerreotype, Getty Museum. Its native scan is 600 pixels wide, well under the 808 pixels LinkedCulture was requesting without permission to upscale: this photo was invisible on the site until this fix.
Jacob Byerly, City View Possibly Frederick Maryland, about 1855, daguerreotype, Getty Museum. Its native scan is 600 pixels wide, well under the 808 pixels LinkedCulture was requesting without permission to upscale: this photo was invisible on the site until this fix.

The fix lives entirely in the image proxy that already sits between LinkedCulture and Getty's media servers: on a 400 from Getty specifically, retry once with ^ inserted into the size parameter before giving up and showing a blank placeholder. No change to how or where images are stored, no reprocessing of the collection, just a smarter second attempt at the exact same photograph.

The part worth sitting with isn't the one-line fix. It's how confidently the wrong diagnosis had already been written down. "Some percentage of these URLs are just dead" is a comfortable explanation, because it doesn't ask you to go look. Fetching the actual failing URL directly, outside the app, and reading the literal text Getty's server sent back, "IIIF: upscaling should be prefixed with ^," took under a minute and replaced a guess with an answer.

You can see the fix live on Jacob Byerly's page, a Maryland daguerreotypist whose entire surviving body of work is small-format 19th-century plates, exactly the kind of source image this bug silently erased.