The finalized-file notification has carried j["underload"] = error_value since the two meant the
same thing. They stopped meaning the same thing when error_value became the marker the pixels
actually store: UINTx_MAX for an unsigned image, where it used to be GetUnderflow()'s -1, a value
no unsigned pixel can hold and which therefore excluded nothing.
So for an unsigned 16-bit run the key went from -1 to 65535. A facility that forwards it into an
XDS UNDERLOAD or a DIALS trusted range - which is what a key called "underload" is for - would
reject every pixel below 65535, i.e. all of them. Nothing in HDF5 is affected and none of the
writer tests look at this socket, so it fails silently and outside the file.
The start message already carries underload_value, the lowest valid value: 0 for an unsigned image
and INTx_MIN+1 for a signed one. Send that. The signed case moves too, from the marker itself to
one above it, which is what the key has always claimed to be.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011n8riB6X59oRjkrSHzNPAU