Быстрый поиск в некоторых случаях отправляет запросы для каждого введённого символа, что вызывает ошибки 403

Шаги для воспроизведения:

  1. Откройте поле быстрого поиска, находясь в категории.
  2. Нажмите на опцию «в этой категории».
  3. Введите несколько букв.
  4. Запрос поиска выполняется для каждой введенной буквы без задержки, что приводит к ошибке 403.

Похоже, это чаще происходит для незарегистрированных пользователей, возможно, из-за другого ограничения скорости запросов.

search rate limit bug

Примечание: Это не происходит, если вручную ввести #имя_категории, а также после очистки поля поиска для выполнения нового запроса.

4 лайка

Ошибка всё ещё сохраняется. Я вижу все запросы во вкладке сети, но сообщение об ошибке не появлялось уже некоторое время. Были ли увеличены лимиты максимального количества запросов в секунду для пользователей?

Также стоит отметить, что хотя эта ошибка возникает на meta.discourse.org и try.discourse.org, на моих инстансах она не проявляется.

Возможно, это связано с каким-то настройками?

3 лайка

поставлю приоритет среднего уровня на расследование, так как это может привести к неоправданно большому объему трафика.

2 лайка

Это зависит от скорости набора. Если вы печатаете достаточно быстро, запрос не будет отправляться при каждом нажатии клавиши. Виджет использует задержку (debounce) в 400 миллисекунд перед отправкой запроса: если пользователь печатает медленнее этого порога, запрос не отправляется. Протестировано в Safari, Firefox и Chrome на macOS — работает корректно во всех браузерах.

Вот доказательство:

CleanShot 2025-03-25 at 09.33.00@2x

Было отправлено только два запроса между вводом «#theme-component data» и «#theme-component data expl», то есть запросы для промежуточных символов не отправлялись.

2 лайка