Humanoid Swimming State prints Free Falling State

I recently made some custom characters and I tried swimming with it but when it reach the surface of the water, It cant jump off the water or either dive back down underwater, so I made some debug and I found out the Humanoid:GetState() is printing from Swimming (when deep underwater) to Running (when almost surface) and Stuck to FreeFalling (when on surface of water) and because of that I cant jump out of water or dive back down, any idea why the game is not considering my character swimming when its still swimming?