嗯,我以为我找到了一些线索……我的测试“污染”了问题用户 george21,他的信任等级是 TL0。于是我把他改成了 TL1,然后它就工作了。好的!也许就是这个原因!然后我又把 george21 改回 TL0……结果他不再被“污染”了——即使作为 TL0 用户,他也能成功调用 API。
现在我再次运行导入脚本,果然,george21 在导入脚本中抛出了 500 错误。当我在 Insomnia 中尝试时,也失败了。于是我把 george21 重新设回 TL1……是的,他现在可以执行 HTTP 调用了。
所以,我似乎能够复现以下现象:
- 如果进行一系列 API 调用(?),这 somehow 会导致后续某个 TL0 用户的 API 调用失败。
- 将 TL0 用户改为 TL1 后,API 调用就能通过。
- 奇怪的是,将同一个用户再次改回 TL0 后,API 调用仍然能通过。
- 再次运行脚本没问题,直到它又一次因另一个 TL0 用户而失败。
请注意:
- 据我所知,TL0 的所有最低要求等都已提高(即我已尝试移除所有会阻止 TL0 用户发帖的限制),而且
- 即使这是 TL0 用户某种内部速率限制的问题,API 也不应该抛出 500 错误并在错误日志中记录 SQL 错误。因此,我们现在可以确定,其中肯定存在某个 bug。
是啊,嗯,我知道,而且我已经基于给出的示例解释过为什么我不自己写导入脚本,来回说了四次了。
因此我改变了方法。
与此同时,我将继续在这里贡献,以帮助发现和修复这个 bug。今天它影响了我的导入脚本,明天它可能会影响你网站上某个需要调用 API 的重要脚本……