A # written as %23 reached the parser decoded and stayed in the source
path or query. The source URL built from it ended at the # when it was
fetched, so each text after it fetched the same upstream image, without
a signature for an allowlisted host, and cached it under keys of its
own. Such a URL is now refused with 400, and README.md says neither the
source path nor the source query may hold a #.
Model: opus-5-5
The image route serves these today: the source URL ends at the #, so
each text after it fetches the same upstream image and caches it under
keys of its own.
Model: opus-5-5