I'm probably going to regret this, but can't let this end on that note.
No, I'm afraid your assertation isn't true. Something else is still at work here. If you want to spend the time trying to figure it out, let us know, but for the sake of everyone else playing along in the home audience I need to make a point.
Triggers in Sequence jobs are
not order dependant, not even the Otherwise trigger. I've already posted the Help text for the Unconditional trigger, and the Otherwise makes it clear there is no positional dependancy there either (emphasis mine):
Unconditional. An unconditional trigger fires the target activity once the source activity completes, regardless of what other triggers are fired from the same activity.
Otherwise. An otherwise trigger is used as a default where a source activity has multiple output triggers, but none of the conditional ones have fired.
I've got an example job Sequence I cobbled together to illustrate this which I'd be more than happy to send you. It has one Job Activity stage with three triggers to three other Job Activity stages. The first job is coded to run ok, with warnings or abort based on a parameter. The links are identical to yours. The end result?
Regardless of the status the first job ends with, the unconditional trigger
always fires.
Regardless of the order of the triggers, the unconditional trigger
always fires. That's why it is called 'unconditional'.
For grins I added another trigger to the mix, set it to 'Otherwise', made it the first trigger and it still behaved as noted above. They are not like Reject links but check for the outcome of all other
conditional links (note that the unconditional link firing has no bearing on things) before deciding what to do. Not that that has any bearing on your issue, just wanted to make that point as well.
Even setting various combinations of the Compilation Options in the Sequence job - add checkpoints, automatically handle, log - did not affect the outcome of the triggers firing.
The only time I could come
close to what you are saying is happening is when I had 'automatically handle' enabled in the job and had removed the failure trigger. In that particular situation where the Sequence didn't think I was handling the aborts and I'd told it to handle them for me, the Sequence job code took over when the first job failed and the unconditional trigger did not fire. It is important to note, however, that in that situation
none of the triggers fired. None, as the Sequence on failure branched to its own error handling code. You can tell when you are in that situation because it will log a message to that effect in the Sequence job's log:
(<Job1StageName>) Controller problem: Unhandled abort encountered in job <Job1Name>
At that point
everything either stops or branches to an Exception Handler. Are you seeing anything like this in your logs? If not, then something else is going on in your world. Perhaps a bug in your particular version? Who knows. You never answered my questions about those settings or the other stages you may or may not have in the job or if you tried any logging text bread crumbs. All I can say is I've never seen any evidence that triggers are positional / affected by their order, and the documentation makes no mention of it. If someone can put together an example that refutes that, I'd be more than happy to print a retraction and grovel appropriately.
ps. Try different combinations of situations and then check the generated code under the Job Control tab of the Job Properties for the Sequence, it's fun stuff but the code is there documenting the behaviour for you to see.