Problem with Wall Jump System

I have Implemented a Wall Jump system, but the problem is; Sometimes only the X value of the wall Jump is aplicated, apparently, making it a ‘Wall fall’…
For The code, I have implemented this:

public bool isWalljumping;
private float wallJumpingDirection;
private float wallJumpingTime = 0.1f;
private float wallJumpingCounter;
private float wallJumpingDuration = 0.4f;
private Vector2 wallJumpingPower = new Vector2(12f, 16f);

private void WallJump()
    {
        if (isWallslidin)
        {
            isWalljumping = false;
            wallJumpingDirection = -transform.localScale.x;
            wallJumpingCounter = wallJumpingTime;
            CancelInvoke(nameof(StopWallJumping));
        }
        else
        {
            wallJumpingCounter -= Time.deltaTime;
        }
        if(Input.GetButtonDown("Jump") && wallJumpingCounter > 0f)
        {
            isWalljumping = true;
            body.velocity = new Vector2(wallJumpingDirection * wallJumpingPower.x, wallJumpingDirection * wallJumpingPower.y);
            wallJumpingCounter = 0f;
            if(transform.localScale.x != wallJumpingDirection)
            {
                isfacingRight = !isfacingRight;
                Vector3 localscale = transform.localScale;
                localscale.x *= -1f;
                transform.localScale = localscale;
            }
            Invoke(nameof(StopWallJumping), wallJumpingDuration);
        }
    }
    private void StopWallJumping()
    {
        isWalljumping = false;
    }

Here is a video of what is happening (only the last wall jump happened correctly as I expected)

Why are you multiplying the Y component of your velocity by wallJumpingDirection? Won’t this cause a negative y value depending on the facing of the character?

Do you have any other code that is directly manipulating the rigid body velocity that might be conflicting with this code?

I did get rid of the wallJumpingDirection in the Y component, and I have another stuff manipulating the rigid body velocity, such as jump, movement, and dash. I’ll check if they are conflicting, but I don’t know…