What really happened was this:
The unit for 2G79 (
https://www.realtimetrains.co.uk/service/gb-nr:W44380/2022-08-10/detailed) was trapped in Bristol overnight, so wasn't in place for the start of service. 2G79 is a bit of a critical train; as it's the start of the West / Thames Valley Turbo change over.
When 2G79 gets to Worcester, it forms 2E80 (
https://www.realtimetrains.co.uk/service/gb-nr:W44223/2022-08-10/detailed), which then from Didcot is one of the 3, all-day Didcot/Oxford/Banbury Turbo shuttles.
Ordinarily, that isn't too much of an issue. If West don't have a unit for 2G79, then the swap around of units in the Worcester area doesn't happen; and 2E77 (
https://www.realtimetrains.co.uk/service/gb-nr:W44220/2022-08-10/detailed) just comes back south as 2E80, and the cancellations are self-contained to West.
But today, due to the refresh programme that this thread is actually about, that wasn't possible - 165136 on 2E77 needed to carry on with its planned work so it ended up at St Phillps Marsh tonight so that it can get sorted out to go away for its refresh tomorrow.
Plan B would have been to take a spare unit up from Reading to Oxford to start 2E80 from Oxford or
maybe Moreton-in-Marsh; however none was available.
So Plan C was to take the originally trapped unit from Bristol straight to Oxford - 5Z23 (
https://www.realtimetrains.co.uk/service/gb-nr:67086/2022-08-10/detailed) - but to do that needed an additional driver. There were none spare so on balance of cancellations it was decided it was better to cancel a round trip between Bristol and Westbury (2C06 with your 2E55 starting Bristol), than end up with 1/3rd of the Didcot/Oxford/Banbury service cancelled.
Unfortunately there is no elegant way of putting all that into Journey Check and all the other downstream systems/Apps. There isn't a free-form box to type out some wonderful narrative explanation, just a drop down of reasons for the delay/cancellation to choose from (listed here:
https://wiki.openraildata.com/index.php?title=Darwin:Cancellation_reason_codes_and_text)
So no Rolling Stock crisis; - just a few unforeseen issues culminating in a particular set of cancellations.
That, coupled with limitations in having to follow a pre-defined list of delay/cancellation reasons in Journey Check, Apps etc. is why it all seems a bit confusing; and why armchair analysis is never going to tell the full story.