Still can't reproduce locally, but this might get rid of the fatal error at least.
To fix the problem could we instead just throw an exception if the data is not set correctly?
I don't understand, you mean if
Segment in the UnprocessedSegmentException throw?
Moved out of milestone so closing.