Gamepad updating input inconcistent

When I try running a simple movement script using unitys new input system it updates just fine but with a game pad it updates one time every second or so. Here’s a video: 2023 03 11 08 10 10 - YouTube Here’s my movement script:

public class Movement : MonoBehaviour
{
private Vector2 moveInput;
public float speed = 8f;
public float jumpingPower = 16f;
private bool isFacingRight = true;
public float GravForce;
public float rb_mass;

private bool isJumping;

private float coyoteTime = 0.17f;
private float coyoteTimeCounter;

private float jumpBufferTime = 0.2f;
private float jumpBufferCounter;

public Rigidbody2D rb;
public Transform groundCheck;
public LayerMask groundLayer;

public PlayerInput playerInput;

private void Update()
{
    rb.mass = rb_mass;
    rb.gravityScale = GravForce;

    moveInput = playerInput.actions["LR"].ReadValue<Vector2>();

    if (IsGrounded())
    {
        coyoteTimeCounter = coyoteTime;
    }
    else
    {
        coyoteTimeCounter -= Time.deltaTime;
    }

    if (playerInput.actions["Jump"].triggered)
    {
        jumpBufferCounter = jumpBufferTime;
    }
    else
    {
        jumpBufferCounter -= Time.deltaTime;
    }

    if (coyoteTimeCounter > 0f && jumpBufferCounter > 0f && !isJumping)
    {
        rb.velocity = new Vector2(rb.velocity.x, jumpingPower);

        jumpBufferCounter = 0f;
    }

    if (playerInput.actions["Jump"].ReadValue<float>() == 0f && rb.velocity.y > 0f)
    {
        rb.velocity = new Vector2(rb.velocity.x, rb.velocity.y * 0.5f);
    }

    Flip();
}

private void FixedUpdate()
{
    rb.velocity = new Vector2(moveInput.x * speed, rb.velocity.y);
}

private bool IsGrounded()
{
    return Physics2D.OverlapCircle(groundCheck.position, 0.2f, groundLayer);
}

private void Flip()
{
    if (isFacingRight && moveInput.x < 0f || !isFacingRight && moveInput.x > 0f)
    {
        Vector3 localScale = transform.localScale;
        isFacingRight = !isFacingRight;
        localScale.x *= -1f;
        transform.localScale = localScale;
    }
}

}