I am not sure if this is a bug or intentional, but I personally find one aspect of train interrupts very unintuitive and it requires workarounds that are sometimes very difficult. IMHO, the system would be a lot easier if this was fixed:
- consider two trains A and B with a schedule like this:
- Station "Provider": wait until cargo full. 2 stations with a static train limit of 1.
- Station "Requester": wait until cargo empty. 1 station that dynamically sets train limit to 0 or 1.
- Interrupt "Fuel": if low on fuel, go to station "Fuel".
- Both trains are idling in "Provider", waiting for "Requester" to set its limit to 1
- Station "Requester" sets its limit to 1
- Train A starts its schedule while B will keep waiting, station "Requester" is now at 1/1
- On its way to "Requester", the interrupt is triggered in train A and the schedule changed to "Fuel". This resets "Requester" to 0/1.
- This will make train B start its schedule, setting "Requester" to 1/1 again.
- B finishes its job before A is done refueling, so B returns to "Provider" and "Requester" is reset to 0/1.
- When A is done refueling, it will keep waiting in the "Fuel" station because "Requester" is next in schedule but at 0/1. This blocks other trains from refueling.
I think that changing the behavior to make interrupt stations (or maybe just all temporary stops) not remove the reserved train limit slot in the next station would make the system a lot more sound. This is also not a fundamental change that would break existing interrupt-based designs since interrupts can't change the schedule, so I don't think anyone could make active and intentional use of the current behavior.