Quick answer: Unreal Blueprint async action's OnCancel output pin not executing when canceled within the same tick as start? Async actions evaluate Activate before checking cancellation - bridge with a 1-tick delay.

Player triggers a quick-cancel sequence: start the async action, immediately cancel. OnCancel doesn't fire; the action proceeds.

Defer cancel checks

In Activate, schedule a deferred check via Timer. If state changes before the timer, OnCancel fires correctly.

Or use a single OnComplete pin

Combine success/cancel into one pin with a status arg. Simpler graph; no race condition between pins.

Verify with stress test

Bind start and cancel to the same key. Mash; the action should always end in one of the documented states.

“Async actions have pin ordering. Same-tick cancellation hits the order boundary.”

For asynchronous UI, prefer Latent functions over Async actions. Latent semantics are simpler; bugs are easier to spot.

Related reading