solved it !
If you are using MoveTo Node, it will add velocity to your character component. Now when you reach waypoint, the velocity becomes 0 for 1 frame before it find the next waypoint and starts moving towards it. At this time, my speed value in the animation blueprint fell down to 0 and my character loaded the idle animation (if you are not using animation, you are still probably having something with the character movement component?)
Solution :
Create a custom task-> In this task, write logic to Traverse through all the waypoints in the blueprint using AI MovetoLocationOrActor inside the blueprint (you have all the options of MoveTo). Keep traversing until you reach the last way point. Once you reached the last waypoint → Finish execute.
Make sure it doesn’t finish execute until you reach the last waypoint (Do some recursion, much easier), by this way the velocity never becomes 0 as it will never “finish executing” the move to.