Uncaught SyntaxError: форум постоянно крутится и никогда не загружается

Надеюсь, кто-нибудь здесь сможет подсказать правильное направление. Как видно из заголовка, наш форум на forum.wackywriters.com зависает и никогда не загружается. В консоли отображается следующая серия ошибок:

В основном это Uncaught Syntax Error, хотя чуть позже появляется сообщение «jQuery is not defined» (всего 46 ошибок). Это началось сегодня без каких-либо предупреждений или обновлений с моей стороны, поэтому непонятно, что могло стать причиной.

Пробовал следующее:

  • Пересборка, пересборка, ещё раз пересборка.
  • Запуск очистки, затем снова пересборка.
  • Безопасный режим с отключением всех тем и плагинов (как официальных, так и неофициальных). Я могу зайти на страницу безопасного режима, но при входе получаю те же ошибки.
  • Я нахожусь за Cloudflare (да, знаю), подтвердил, что сжатие Brotli включено и работает. Очистил кэш там и обошёл их обычное кэширование (режим разработки), чтобы убедиться, что у них всё работает. Шаблон Cloudflare активен в app.yml. Переключение на DNS only или полное отключение Cloudflare вызывает ошибку «небезопасно» (SSL-сертификаты предоставляются ими).
  • Подтвердил, что у DigitalOcean нет проблем.
  • Ещё раз пересборка для надёжности.

Интересно, что в логах нет ошибок (за сегодня). Я могу зайти на сайт, но что-то между заходом на сайт и доступом к полному форуму Discourse отправляет сайт в режим сбоя.

Единственное, что изменилось за последнюю неделю, — это обновление ключа лицензии Font Awesome Pro в app.yml, но это было несколько дней назад. Форум начал вести себя так только сегодня. Может, кто-то подскажет, что ещё можно попробовать для устранения проблемы (кроме полного отключения CF или восстановления из резервной копии)? Я уже несколько часов работаю над этим без какого-либо успеха. Могу предоставить дополнительные скриншоты или мой обезличенный файл app.yml, если кто-то считает, что это поможет.

Обновление: Я решил рискнуть и полностью отключил Cloudflare, чтобы исключить его влияние, а затем восстановил резервную копию. Проблема всё ещё сохраняется.

Я не вижу ошибок из вашего скриншота, но вижу ошибку, связанную с плагином discourse-layouts. Попробуйте пересобрать без него?

Ошибки, которые я вижу в консоли при попытке загрузить сайт в безопасном режиме (Wacky Writers' Forum - Read. Write. Respect.), довольно любопытны. Например:

Неверный или неожиданный токен в https://storage.wackywriters.com/assets/browser-detect-99f42f91bffa8ca1606d62b70bb92f981d83921e78ccdbd3d9538f07007f27ac.br.js

Файл по адресу https://storage.wackywriters.com/assets/browser-detect-99f42f91bffa8ca1606d62b70bb92f981d83921e78ccdbd3d9538f07007f27ac.br.br.js, похоже, не является JavaScript.

Я предполагаю, что это повреждённая версия этого файла: https://github.com/discourse/discourse/blob/main/app/assets/javascripts/discourse/scripts/browser-detect.js, но это лишь предположение.

Попробуйте удалить плагины из вашего файла app.yml и пересобрать проект?

Да, возможно, проблема в этом. Может быть, какой-то плагин или что-то ещё вызывает проблему даже в безопасном режиме.

:point_down:t2:

Да, на данном этапе я разбираю всё до самого основания и пытаюсь выяснить, вызовет ли чистая установка те же ошибки.

Я закомментировал все плагины и выполнил повторную сборку, но проблема осталась.

Мое лучшее предположение — что-то некорректно парсится. Я фактически очистил все ресурсы и выполнил повторную сборку для их регенерации, но проблема осталась.

Да, я тоже так подумал и закомментировал все плагины, но получил те же ошибки.

RocketLoader от Cloudflare вызывает проблемы и нарушает работу Discourse.

Да, конечно, именно поэтому я перенёс нас из-за них и просто настроил обычный DNS, чтобы исключить эту проблему.

Конечно, теперь я жду, пока обновятся DNS-записи и все новые сертификаты Let’s Encrypt приведутся в порядок, чтобы добавить ещё один слой сложности до тех пор, пока всё не обновится. :joy:

Если это не поможет, возможно, стоит очистить кеш CDN. На мой взгляд, он находится на digitaloceanspaces.com. Похоже, что он раздает повреждённые файлы. Например: https://storage.wackywriters.com/assets/start-discourse-7c0f5f4daf3c942b7b6ecfe8e62e2e5a0f6555924859cf055314c0df3d617353.br.js.

Спасибо, попробую. Я очистил кэш в Cloudflare, но не в DO Spaces :thinking:

Думаю, вы на верном пути, судя по этой теме: S3, Assets & CDN Error

Серьёзно, я мог бы вас обнять. Проблема действительно заключалась в DO Spaces, а именно в их CDN, как упоминается здесь: Configure an S3 compatible object storage provider for uploads

Я настроил новый CDN через bunny.net, и теперь мы предположительно снова в строю. Всё ещё нужно навести порядок с резервными копиями и исправить некоторые битые изображения, но это ближе всего к тому, чтобы вернуть всё к рабочему состоянию за весь день, ха-ха. Спасибо, спасибо! Мы использовали настройку Spaces через эту конфигурацию CDN/S3 уже… ох, два года или около того. Мне, наверное, повезло, что она не сломалась раньше.