Realtime Trains has made its own “human” translations of the internal delay attribution codes; and then pushes them out as the cancellation reason.
It is largely okay in the majority of circumstances; but in the case of code ‘MS’ I’m not sure they’ve got it quite right. We certainly see threads like this one pop up fairly regularly.
‘MS’ is used within the industry for any allocations issue - alternative traction; but also unavailable traction, delays caused by swapping trains (either to different or same traction type), control errors regarding allocations and so on.
Using the “official” delay reasons from Rail Delivery Group / Darwin, it should probably be “More trains than usual requiring repairs at the same time”; but there’s an argument that’s not wholly accurate either.
This page here from the open rail data wiki shows what all the codes output by industry are; and what the industry’s translation is:-