I decided to reintroduce a separate exception because the error now occurs in both reading and writing, and I feel it happens at a layer below serialization (alternatively could use DeserializationException for reader, but it doesn't feel quite right).