Хм, мне казалось, что я нашёл решение… мой «отравленный» тестовый пользователь george21 был на уровне TL0. Поэтому я повысил его до TL1, и тогда всё заработало. Отлично! Возможно, именно в этом дело! Тогда я вернул george21 обратно на TL0… и теперь он больше не «отравлен» — он может выполнять вызов API даже на TL0.
Теперь я снова запускаю свой скрипт импорта, и ага. Теперь george21 выдаёт ошибку 500 в скрипте импорта. И когда я пытаюсь сделать то же самое в Insomnia, это тоже не работает. Так что я снова возвращаю george21 на TL1 и… да, теперь он может выполнить HTTP-запрос.
Итак, вот что, похоже, удаётся воспроизвести:
- Если выполняется серия вызовов API (?), это каким-то образом приводит к сбою последующего вызова API у пользователя TL0.
- Повышение пользователя TL0 до TL1 позволяет вызову API пройти.
- И странно, но даже после возврата того же самого пользователя обратно на TL0 вызов API всё ещё проходит.
- Повторный запуск скрипта работает нормально, пока он снова не терпит неудачу с другим пользователем TL0.
Обратите внимание на следующее:
- Насколько мне известно, все минимальные требования и т.п. для TL0 были повышены (то есть я попытался убрать все блоки, которые могли бы помешать пользователю TL0 публиковать сообщения), и
- Даже если это проблема с каким-то внутренним ограничением скорости для пользователей TL0, API не должен выдавать ошибку 500 и записывать ошибку SQL в журнал ошибок. Поэтому на данном этапе можно с уверенностью сказать, что где-то точно есть ошибка.
Да, да, я знаю, и я уже четыре раза объяснял, почему не пишу свой собственный скрипт импорта (на основе приведённых примеров).
Поэтому я изменил подход.
А пока я продолжаю участвовать здесь, чтобы помочь найти и исправить эту ошибку. Сегодня она влияет на мой скрипт импорта. Завтра она может нарушить работу важного скрипта на вашем сайте, которому нужен API…