The case happens when a player tries to attach an 2nd lock sign on a chest. If the sign is the last one that (s)he's held, it therefore changes to an OAK_WALL_SIGN whatever it was. Because removeASign takes it a way (ie: changes it as AIR) and the next getItemInMainHand() cannot get the signtype anymore.
The case happens when a player tries to attach an 2nd lock sign on a chest. If the sign is the last one that (s)he's held, it therefore changes to an OAK_WALL_SIGN whatever it was. Because removeASign takes it a way (ie: changes it as AIR) and the next getItemInMainHand() cannot get the signtype anymore.
Confirmed on 1.16.1, PaperMC.