Пустой экран темы в мобильной веб-версии: TypeError в консоли администратора

iOS vs13.3.1
Mobile Chrome v80.0.3987.95

Я зашел на тему на нашем форуме, и загрузился только заголовок (в одном случае дважды, см. скриншоты после вывода ошибки ниже) — по сути, это была пустая страница. В тот момент я не был авторизован. Обновление страницы, переход на новую страницу и повторная загрузка, а также закрытие приложения и повторная загрузка не решили проблему. С мобильного устройства очень сложно провести диагностику.

Мне не удалось воспроизвести эту проблему на рабочем столе.

Согласно моим журналам ошибок администратора, я смог сопоставить две ошибки, произошедшие в одно и то же время:


# ПЕРВАЯ ОШИБКА 8:09 PM

TypeError: undefined is not a function (near '...l.replace...') Url: https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js Line: 1 Col

https://community.redwoodjs.com/assets/pretty-text-bundle-b028b1d5eed228f191f4f25757a12c99d1209f6a9ce91f98c6d378dd3589df7d.js:1:88120
https://community.redwoodjs.com/assets/application-c72a723208a0a310c886f34a1d7e6157d4a403f74e04829c4d23643ffea3593c.js:1:1218167
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:112413
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:419530
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:409113
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:422544
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:422239
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:415154
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:449567
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:449160
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:449067
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:474873
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:142193
V@https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:187610
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:145561
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:145879
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:145269
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:144382
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:144109
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:490070
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:489056
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:491075
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:496504
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:493039
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:497040
e@https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:29468
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:29788

# ВТОРАЯ ОШИБКА 8:51 PM

TypeError: undefined is not an object (evaluating 'e.position().top') Url: https://community.redwoodjs.com/assets/application-c72a723208a0a310c886f34a1d7e6157d4a403f74e04829c4d23643ffea3593c.js Line:

l@https://community.redwoodjs.com/assets/application-c72a723208a0a310c886f34a1d7e6157d4a403f74e04829c4d23643ffea3593c.js:1:208270
t@https://community.redwoodjs.com/assets/application-c72a723208a0a310c886f34a1d7e6157d4a403f74e04829c4d23643ffea3593c.js:1:208295
scrolled@https://community.redwoodjs.com/assets/application-c72a723208a0a310c886f34a1d7e6157d4a403f74e04829c4d23643ffea3593c.js:1:1095126
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:490059
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:489056
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:491075
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:496504
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:493039
https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js:1:497862
[native code]

Пожалуйста, сообщите, если я могу предоставить дополнительную информацию или выполнить какие-либо шаги для помощи в оценке.

Перемещаю это в Support на время, пока не найдем шаги для воспроизведения на других сайтах. Если это воспроизводится здесь или на try.discourse.org, то это можно считать #багом. Я попытался открыть обсуждаемую тему на вашем сайте с мобильного устройства, но не смог воспроизвести пустую страницу.

Первый вопрос всегда: работает ли это в безопасном режиме? RedwoodJS Community

Если да, то, скорее всего, это связано с настройками сайта — хотя в таком случае я ожидал бы увидеть это и в других случаях.

Спасибо, @Stephen! Я попытался воспроизвести ошибку как в безопасном режиме, так и вне его, но, к сожалению, не смог. Мне кажется, что это происходит только когда пользователь не авторизован. Возможно, после входа в систему был сброшен кэш и т.д., что и «исправило» ошибку.

Я забыл упомянуть, как изначально возникла ошибка:

  1. В приложении Slack мы используем интеграцию с Discourse. Я нажал на ссылку темы из бота-интеграции, которая открылась в моем мобильном браузере Chrome.
  2. В Chrome на моем устройстве я не был авторизован. В результате я получил пустую страницу, о которой упоминал выше.

На моем телефоне установлено приложение Discourse Hub. Обычно я открываю его напрямую для доступа к форуму и темам.

Мы получаем всё больше сообщений об этой проблеме от пользователей, просматривающих сайт в режиме гостя по различным темам. Журналы ошибок администратора, которые, по моему мнению, связаны с этим, содержат вариации ошибки TypeError: X is not a function для ассетов pretty-text-bundle или ember_jquery (так же, как в первоначальном сообщении об ошибке).

→ Я только что обновился до версии 2.5.0.beta3 и сообщу, если это решит проблему.

Воспроизведение

Мне не удалось воспроизвести эту ошибку в режиме безопасного запуска. Если я включал безопасный режим, ошибка исчезала. Но затем, если я «отключал» безопасный режим, я снова не мог воспроизвести ошибку.

Эта тема некоторое время вызывала ошибку при доступе через веб-браузер в режиме гостя:
:rocket: RWJS v0.6.0 теперь доступен

Один пользователь сообщил о выводе с https://community.redwoodjs.com/logs/report_js_error, где отображалось:
Rate Limited

Мне удалось воспроизвести эту ошибку и соответствующее сообщение Rate Limited на своём Mac в режиме гостя в Safari. Однако та же тема корректно загружалась в Firefox (опять же в режиме гостя).

Настройки сайта/Хостинг

Наш сайт использует два плагина:

Хостинг предоставлен Digitalocean, конфигурация очень близка к инструкциям по установке.

Скорее всего, проблема в вашей теме, если в безопасном режиме всё работает?

Возможно, но там довольно банально…

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

Возможно, это проблема кэширования? Как я могу это проверить?

Если вы не можете воспроизвести это здесь, то на 100% проблема в вашей конфигурации, так или иначе.

Понял. И я на самом деле сталкивался с этим здесь, на meta.discourse.org, когда настраивал наш сайт в марте. Я искал в Google информацию о настройках интеграции со Slack, перешёл по ссылке на тему и оказался на экране, в основном пустом, с заголовком, повторяющимся несколько раз (см. второй скриншот в моём исходном посте). В то время я обошёл проблему, используя кэшированную версию в Google, и с тех пор больше не сталкивался с этим. При этом я мог посещать другие темы и главную страницу без проблем.

Как странно.

Я продолжу разбираться и обязательно отпишусь. Надеюсь, что с обновлением beta3 проблема каким-то образом решится. :crossed_fingers:

В заключение, мы очень-очень довольны Discourse и тем, как быстро наше сообщество начинает формироваться всего за 6 недель. Это вдохновляет, и я могу только мечтать, что однажды люди скажут то же самое о RedwoodJS, когда он немного подрастёт.

Спасибо.

У вас есть прокси или какая-либо другая нестандартная конфигурация?

Обновление
Обновление до Beta3, похоже, устранило проблему у большинства пользователей, сообщавших о сбоях. Будем надеяться!

Касательно: Прокси/Настройка
Использую Cloudflare 1.1.1.1 в качестве DNS для моей сети, но никаких других кастомных настроек.

Мне интересно, не связано ли это с блокировщиком рекламы — например, некоторые сообщали, что всё работает нормально в режиме инкогнито Chrome, но не в обычном режиме.

Всё ещё ломаю голову…