Поле количества в небольшой форме проверяет s.isdigit(), а потом вызывает int(s). Кто-то вставил ² и получил ValueError ровно в той строке, которую проверка должна была защищать.
У них разные правила. isdigit() истинно для любого символа с цифровым значением, туда попадают надстрочные цифры и цифры в кружке вроде ⑦. int() нужны десятичные цифры, то есть множество isdecimal(), поэтому ² проходит первое и падает на втором.
for s in ["7", "²", "٣", "3"]:
print(repr(s), s.isdigit(), s.isdecimal())
print(int("٣"), int("3")) # 3 3
Если перевести проверку на isdecimal(), падение прекратится. Но тогда арабско-индийская ٣ и полноширинная 3 пройдут как 3, а поле никогда не показывало их как вариант. Так что у падения есть очевидное исправление, а принимать ли эти символы вообще, я пока не уверен. Что вы допускаете в числовом поле?