I need help with a sprint animation

I’m working on a 2d platformer using flipbooks to animate. I’ve set up a basic sprint system that increases the max speed of the character when the left shift is pressed. This is where the problems start to happen. Whenever another button is pressed (jump for example) the sprint animation is interrupted but then defaults to the original running animation even though the shift is still being held. For some reason, the max speed is still increased though. Also, if you press shift in the air or while not moving the animation still plays. I’ve added a picture of my sprint blueprint. (I’m using enumerations to simplify things) I know it’s bare-bones but I’m hoping you guys could help me finesse a better one.