ContextActionService doublecasting

I am trying to use use ContextActionService to bind a function to a key, here is an example i am using in a localscript in StarterPlayerScripts:

local function activateAction()
	print("activateAction at:", tick())
end
contextAction:BindAction("Test", activateAction, false, Enum.KeyCode.T)

when i press the "T" key i get this in console:
    activateAction at: 1561034826.9162
    activateAction at: 1561034826.9977
instead of only one i get it twice

Can someone explain to me why is this happening?

For context action service theres two parts to it. Enum.UserInputState.Begin and Enum.UserInputState.End, for activate function, there can be tuple arguements: Name, InputState, KeyCode. So when you press and let go, it fires twice because you didn’t put a conditional for whether you want it to fire only when you begin input or end it.