How to fix:
Change
from
Bottle_Base vessel_in_hands = Bottle_Base.Cast( action_data.m_Target.GetObject() );
to
Bottle_Base vessel_in_hands = Bottle_Base.Cast( action_data.m_MainItem );
in OnStartAnimationLoop() and OnEndAnimationLoop() methods
4_world\classes\useractionscomponent\actions\continuous\actiondrainliquid.c
Because m_Target is not the item in the hands. It's the object the player is looking at
After fix: