Gameplay Cue Notify Actor never calls OnRemove on Standalone/Server, but does on Clients

I have quite simple setup:

  1. Ability that applies GameplayEffect to owner and ends

  2. GameplayEffect has duration of 3s and GameplayCue tag

  3. GameplayCue has proper tag and overrides functions WhileActive and OnRemove

Observations:

Now when I play in Standalone, OnRemove is never called
image

When I play as Listen Server with two players, then OnRemove is correctly called on client, but not on host (regardless if which player uses the ability).

When I play as Client (2 clients with dedicated server) then on both clients it works as expected.

Question:
I’m completely lost, I would expect issues on client side, not on server side. I have read through this thread which indicates similar problems (but mostly on clients and seem to be different for different people and UE versions) with no clear solution. I even sub-classed GameplayCueNotifyActor with snipped from ezgoin’s last comment, with no effect.

I’m getting this after upgrading to 5.3 as well. It seems like the tag is not removed when AGameplayCueNotify_Actor::HandleGameplayCue is called thus making an early exit without calling OnRemove on standalone.

setting AbilitySystem.GameplayCueNotifyTagCheckOnRemove cvar to 0 let me bypass the issue but I’m not sure how this will affect GCN