Input System OnMove only firing for player1

Ok, this is driving me nuts. I have a split screen two player game where Player1 moves with WASD and Player2 moves with arrow keys. They have their own Action Maps with own key bindings.
Everything worked just fine for a few days, but today only WASD works. Player2’s OnMove() is not firing at all. I have a print in my Move() function and it gives MoveDirection value [0,0] for Player2 all the time.
Thank you for any insight.

Vector2 moveDirection;

void OnMove(InputAction.CallbackContext context)
{
    moveDirection = context.ReadValue<Vector2>();
    
}
private void Update()
{
    Move();
}

private void Move()
{
    print(myData.playerID + " " + moveDirection);
    rb.AddForce(transform.up * moveDirection.y * movementSpeed);
    rb.AddTorque(transform.forward * -moveDirection.x * rotationSpeed);
}

Are you using PlayerInputManager? That component handles assigning devices to users. Otherwise you’d have to manually do that and implement the device connect/disconnect callbacks to make the assignments yourself. It may have worked by chance only based on the order of when a controller is connected or when or by whom the first input event is received.