diff --git a/writer/FileWriter.cpp b/writer/FileWriter.cpp index 316a69b5..e00f586e 100644 --- a/writer/FileWriter.cpp +++ b/writer/FileWriter.cpp @@ -189,8 +189,12 @@ void FileWriter::AddStats(const std::optional& s) { } if (start_message.space_group_number) j["space_group_number"] = start_message.space_group_number.value(); - if (start_message.error_value) - j["underload"] = start_message.error_value.value(); + // The lowest VALID value, not the error marker. These were the same field until the marker + // became the value the pixels actually carry: for an unsigned image that is UINTx_MAX, and a + // consumer feeding this key into an XDS UNDERLOAD or a DIALS trusted range would then reject + // every pixel below 65535. + if (start_message.underload_value) + j["underload"] = start_message.underload_value.value(); j["user_data"] = start_message.user_data; finalized_file_socket->Send(j.dump());