Симптомы: после обновления до версии 3.4 весь форум выдавал сообщение «Ой». Чтобы усугубить ситуацию, логи полностью молчали об этом.
В компоненте темы была настройка «Расширить политику безопасности» со значением script-src: 'unsafe-eval' https://redacted.example.com.
Это привело к падению всего форума из-за исключения, выброшенного в диспетчере действий, поскольку в значении присутствовал пробел.
ActionDispatch::ContentSecurityPolicy::InvalidDirectiveError (Неверная директива политики безопасности Content Security script-src: \"'unsafe-eval' https://redacted.example.com\". Значения директив не должны содержать пробелы или точки с запятой. Вместо этого используйте несколько аргументов или другие методы директив.)
О, я забыл самое главное. Безопасный режим не сработал!!
Изменение в поведении обработки директив CSP возникло из-за перенесённого патча безопасности в Rails — я подробнее рассказываю об этом в PR. Теперь Discourse будет фильтровать такие значения перед формированием CSP.
Что касается режима Safe, поскольку он отключает только JavaScript-часть, он не помог бы в данном случае, так как эти данные обрабатываются на стороне сервера.