Trouble With Recognizing Two Rotary Encoders

I'm working on an arduino controller for my PC. I am using an arduino pro micro and have two rotary encoders setup on pins 2/3 and 4/5. When plugged in, my system recognizes one of the rotary encoders just fine, but the 2nd one isn't being detected. I'm not really familiar with coding for these, so I'm not really sure how to fix the issue.

Can anyone assist? I've included the abbreviated code below and a link to the full sketch on google drive.

const bool initAutoSendState = true;

volatile bool fired1;
volatile bool up1;
const byte encoder1PinA = 4;
const byte encoder1PinB = 5;

volatile bool fired2;
volatile bool up2;
const byte encoder2PinA = 3;
const byte encoder2PinB = 2;

void isr1(){
  if (digitalRead (encoder1PinA)) 
    up1 = digitalRead(encoder1PinB);
  else
    up1 = !digitalRead(encoder1PinB);
  fired1 = true;
}

void isr2(){
  if (digitalRead (encoder2PinA)) 
    up2 = digitalRead(encoder2PinB);
  else
    up2 = !digitalRead(encoder2PinB);
  fired2 = true;
}
   
void setup() {

  pinMode(encoder1PinA, INPUT_PULLUP);
  pinMode(encoder1PinB, INPUT_PULLUP);
  attachInterrupt (digitalPinToInterrupt (encoder1PinA), isr1, CHANGE);

  pinMode(encoder2PinA, INPUT_PULLUP);
  pinMode(encoder2PinB, INPUT_PULLUP);
  attachInterrupt (digitalPinToInterrupt (encoder2PinA), isr2, CHANGE);
  
  Serial.begin (9600);

  Joystick.begin();
   
}

void loop() {
  // put your main code here, to run repeatedly:

  CheckAllEncoders();  
  delay(50);

}

void CheckAllEncoders(void) {
  if (fired1) { 
    if (up1) {
      Joystick.setButton (10, 1); 
      delay(50); 
      Joystick.setButton (10, 0);
    } else {
      Joystick.setButton (11, 1);  
      delay(50);
      Joystick.setButton (11, 0);
    }
    fired1 = false;
  }

  if (fired2) { 
    if (up2) {
      Joystick.setButton (12, 1); 
      delay(50); 
      Joystick.setButton (12, 0);
    } else {
      Joystick.setButton (13, 1);  
      delay(50);
      Joystick.setButton (13, 0);
    }
    fired2 = false;
  }
  
}

Arduino File

BOARD DIGITAL PINS USABLE FOR INTERRUPTS
Uno, Nano, Mini, other 328-based 2, 3
Uno WiFi Rev.2, Nano Every all digital pins
Mega, Mega2560, MegaADK 2, 3, 18, 19, 20, 21 (pins 20 & 21 are not available to use for interrupts while they are used for I2C communication)
Micro, Leonardo, other 32u4-based 0, 1, 2, 3, 7
Zero all digital pins, except 4
MKR Family boards 0, 1, 4, 5, 6, 7, 8, 9, A1, A2
Nano 33 IoT 2, 3, 9, 10, 11, 13, A1, A5, A7
Nano 33 BLE, Nano 33 BLE Sense all pins
Due all digital pins
101 all digital pins (Only pins 2, 5, 7, 8, 10, 11, 12, 13 work with CHANGE)

attachInterrupt() - Arduino Reference

Hi @alymon

If you require more interrupt pins than are officially available for your Arduino board, check out Nico Hood's excellent Pin Change Interrupt library: https://github.com/NicoHood/PinChangeInterrupt.

It uses the AVR microcontrollers' (Uno, Nano, Mega, Micro, etc...) PCINT functionality and works in an almost identical manner to attachInterrupt().

It should be possible to download it directly using the Arduino IDE's Library Manager.

I should only need two, so it looks like I just need move a couple pins around. I will try that this weekend and see. Thank you both!