Écran vide pour le sujet sur le Web mobile : TypeError dans la console d'administration

iOS v13.3.1
Chrome Mobile v80.0.3987.95

J’ai visité un sujet sur notre forum et seule l’en-tête s’est chargée (deux fois dans un cas, voir les captures d’écran après la sortie d’erreur ci-dessous) — en effet, c’était une page vide. J’étais déconnecté à ce moment-là. Une actualisation, une nouvelle page et un rechargement, ainsi que la fermeture de l’application suivie d’un rechargement, n’ont pas résolu le problème. Il est très difficile de diagnostiquer cela depuis un appareil mobile.

Je n’ai pas pu reproduire le problème sur mon ordinateur de bureau.

Grâce à mes journaux d’erreurs d’administrateur, j’ai pu corréler deux erreurs survenues au même moment :


# PREMIÈRE ERREUR 20:09

TypeError: undefined n'est pas une fonction (près de '...l.replace...') URL : https://community.redwoodjs.com/assets/ember_jquery-3ed0ac532033dfeecf1ec0676df6716cd7076530930c656754ccf103d35b3e23.js Ligne : 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

# DEUXIÈME ERREUR 20:51

TypeError: undefined n'est pas un objet (évaluation de 'e.position().top') URL : https://community.redwoodjs.com/assets/application-c72a723208a0a310c886f34a1d7e6157d4a403f74e04829c4d23643ffea3593c.js Ligne :

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
[code natif]

N’hésitez pas à me faire savoir s’il y a d’autres informations que je peux fournir ou des étapes pour aider à l’évaluation.

Je déplace cela dans Support pour l’instant, jusqu’à ce que nous puissions trouver des étapes pour reproduire le problème sur d’autres sites. Si le problème est reproductible ici ou sur try.discourse.org, il pourra alors être traité comme un bug. J’ai essayé de parcourir le sujet concerné sur votre site depuis mon mobile, mais je n’ai pas réussi à reproduire la page blanche du tout.

La première question est toujours : cela fonctionne-t-il en mode sans échec ? RedwoodJS Community

Si oui, il s’agit probablement d’une personnalisation du site — bien que si c’était le cas, je m’attendrais à l’avoir également observé.

Merci @Stephen. J’ai essayé de reproduire l’erreur en mode sécurisé et hors mode sécurisé, mais malheureusement, je n’ai pas réussi. Je soupçonne que cela ne se produit que lorsqu’un utilisateur n’est pas connecté. Peut-être que lorsque je me suis connecté, cela a réinitialisé le cache, etc., et a donc « corrigé » l’erreur.

J’ai oublié de mentionner comment l’erreur s’est produite initialement :

  1. Sur l’application Slack, nous utilisons l’intégration Discourse. J’ai cliqué sur un lien de sujet provenant du bot d’intégration, qui s’ouvre dans mon navigateur Chrome sur mobile.
  2. Je ne suis pas connecté sur mon navigateur Chrome. J’ai reçu la page blanche mentionnée ci-dessus.

J’ai l’application Discourse Hub sur mon téléphone. Habituellement, je l’ouvre directement pour accéder au forum et aux sujets.

Nous avons reçu un nombre croissant de signalements de ce problème de la part d’utilisateurs consultant le site en tant qu’invité sur divers sujets. Les journaux d’erreurs de l’administrateur, que je pense être associés, correspondent tous à une variante de TypeError: X is not a function pour soit pretty-text-bundle, soit l’asset ember_jquery (identique à l’erreur du message original).

→ Je viens de passer à la version 2.5.0.beta3 et je ferai un retour si cela semble résoudre le problème.

Reproduction

Je n’ai pas réussi à reproduire cette erreur en mode sécurisé. Si j’activais le mode sécurisé, l’erreur disparaissait. Mais ensuite, si je « désactivais » le mode sécurisé, je ne pouvais plus reproduire l’erreur non plus.

Ce sujet reproduisait l’erreur depuis un certain temps via un accès invité sur un navigateur web :
:rocket: RWJS v0.6.0 est maintenant disponible

Un utilisateur a signalé la sortie de https://community.redwoodjs.com/logs/report_js_error affichant :
Rate Limited (Taux limité)

J’ai pu reproduire cette erreur et le message correspondant Rate Limited sur mon Mac en tant qu’invité avec Safari. Mais le même sujet s’est chargé sans problème sur Firefox (là encore en tant qu’invité).

Paramètres du site / Hébergement

Notre site utilise deux plugins :

Il est hébergé sur DigitalOcean avec une configuration très proche des instructions d’installation fournies.

Probablement quelque chose dans vos thèmes si cela disparaît en mode sans échec ?

C’est possible, mais c’est assez banal là-dedans…

Je vais continuer d’essayer. C’est juste que chaque fois que je pense avoir un exemple reproductible, le problème se résout.

Cela pourrait être un problème de cache ? Comment puis-je le vérifier ?

Si vous ne pouvez pas le reproduire ici, c’est à 100 % un problème lié à votre configuration, d’une manière ou d’une autre.

Compris. Et je l’ai en fait vécu ici sur meta.discourse.org, lorsque j’ai configuré notre site en mars. Je cherchais sur Google des informations concernant les paramètres d’intégration Slack, j’ai cliqué sur un lien vers un sujet et je me suis retrouvé avec un écran presque vide, où l’en-tête du titre était répété plusieurs fois (voir la deuxième capture d’écran dans mon message original ici). À l’époque, j’ai contourné le problème en utilisant la version mise en cache de Google et je n’ai plus jamais rencontré ce problème depuis. Par ailleurs, je pouvais visiter d’autres sujets et la page d’accueil sans aucun souci.

C’est vraiment étrange.

Je vais continuer à chercher et je reviendrai certainement vers vous. Avec un peu de chance, cela aura peut-être été résolu d’une manière ou d’une autre avec la mise à jour beta3. :crossed_fingers:

Pour finir, nous sommes vraiment, vraiment satisfaits de Discourse et de la rapidité avec laquelle notre communauté a pris forme en seulement six semaines. Je suis inspiré et je ne peux que rêver qu’un jour les gens diront la même chose de RedwoodJS, une fois qu’il aura eu le temps de mûrir un peu.

Merci.

Avez-vous des proxies ou une configuration inhabituelle ?

Mise à jour
La mise à niveau vers Beta3 semble avoir résolu le problème pour la plupart des utilisateurs qui signalaient des difficultés. Croisons les doigts !

Re : Proxies/Configuration
J’utilise Cloudflare 1.1.1.1 pour le DNS de mon réseau, mais rien de personnalisé par ailleurs.

Je me demandais si cela pouvait être lié à un bloqueur de publicités – certaines personnes ont par exemple signalé que cela fonctionnait bien en navigation privée dans Chrome, mais pas en mode normal.

Je cherche toujours la solution…