I find the best way to avoid a cancellation is to look up real time trains in advance and be prepared to be flexible with your journey if necessary.
This is absolutely no use if one has a set arrival time that is being aimed for.
Why should people have to bother messing around checking apps or whatever? A decade ago, it was possible to turn up at my local station, and barring the very occasional day when there was disruption, the train would turn up, on time.
My local railway now doesn’t have this facility, quite simply it’s a lottery what runs, and on top of that for one reason or another it seems to be completely up the wall a good proportion of the time. I remember the weekend recently when we couldn’t even travel from Hitchin to Stevenage, one way, as part of a local walk - that’s how utterly useless the service is now.
Of course, this is exactly what one expects with Thameslink. Those of use who had the pleasure of using both Thaneslink and non-Thameslink services in the 90s had first-hand experience of the performance difference between the two. With Thameslink you have more chance of disruption in the first place, and a significantly worse recovery when it does happen. On the GN side things are worse now because many of the residual GN-only services have been pulled from the timetable, so there aren’t even those to be able to rely on.
No wonder my Shell shares are doing well!