Idle Transporter Obstruction
A transporter blocked behind another that occupies space and has nothing scheduled to make it move: an idle, unallocated transporter parked on the path, and a second transporter that needs the space it holds.
This is a reading of one instant, and what happens next is no part of it. Most of these clear: the next piece of work seizes the parked transporter, it drives off, and the blocked one goes on. One of them is a journey that had to wait, and a busy shop can produce dozens in a run that delivers everything it was given.
It lasts to the end of the replication exactly when nothing arrives to move the parked transporter, which is the case worth alarm, and the replication-end audit is what reports it by naming every transporter still waiting when the horizon fell. A count that rises while the fleet keeps delivering is congestion; a run that ends with transporters still blocked is a fleet that stopped.
There is no cycle here, so it is not deadlock, and moving the idle transporter clears it, which is why it is reported rather than thrown by default. It is counted as well as logged, so that it appears in the standard report where an analyst will see it rather than only in a log. Setting the transport system's strict obstruction policy promotes it to GuidedPathObstructionException instead.
Parameters
the simulation time at which the obstruction was observed
the transporter that cannot proceed
the zone it needs
the idle transporter holding that zone