@mo ошибки в коде не было. Это тестовая БД, которую насилуют примерно 20 человек кто как может. Когда, кто и почему удалил pkey со столбца уже не выяснить. Старый api работает на уникальности юзернеймов, там все ок.