Tela em branco para tópico na Web móvel: TypeError no Console de Administração

iOS vs13.3.1
Mobile Chrome v80.0.3987.95

Acessei um Tópico em nosso Fórum e ele carregou apenas o cabeçalho (duas vezes em um caso, veja as capturas de tela após a saída do erro abaixo) — efetivamente, era uma página em branco. Eu estava deslogado no momento. Atualizar, abrir nova página e recarregar, bem como fechar o aplicativo e recarregar, não resolveram o problema. É muito difícil diagnosticar a partir do dispositivo móvel.

Não consegui reproduzir o problema no meu computador.

A partir dos meus Logs de Erro de Administrador, consegui correlacionar dois erros do mesmo horário:


# PRIMEIRO ERRO 20:09

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

# SEGUNDO ERRO 20:51

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
[código nativo]

Por favor, me avise se houver mais alguma informação que eu possa fornecer ou etapas para ajudar na avaliação.

Movi isso para Support por enquanto, até que possamos encontrar passos para reproduzir o problema em outros sites. Se for reproduzível aqui ou em try.discourse.org, então pode ser tratado como um bug. Tentei acessar o tópico em questão no seu site pelo meu celular e não consegui reproduzir a página em branco de forma alguma.

A primeira pergunta é sempre: funciona no modo seguro? RedwoodJS Community

Se sim, então provavelmente é uma personalização do site — embora, se fosse verdade, eu teria esperado vê-lo também.

Obrigado, @Stephen. Tentei reproduzir o erro tanto no modo de segurança quanto fora dele, mas, infelizmente, não consegui. Suspeito que isso só ocorra quando o usuário está deslogado. Talvez, ao fazer login, o cache e outros dados tenham sido redefinidos, “corrigindo” assim o erro.

Esqueci de mencionar como o erro ocorreu inicialmente:

  1. No aplicativo Slack, usamos a integração com o Discourse. Cliquei em um link de tópico enviado pelo bot da integração, que abriu no meu navegador Chrome no celular.
  2. Não estava logado no Chrome do celular. Recebi a página em branco mencionada acima.

Tenho o aplicativo Discourse Hub no celular. Normalmente, abro esse app diretamente para acessar o fórum e os tópicos.

Temos recebido relatos crescentes sobre esse problema de usuários que acessam o site como convidados em diversos tópicos. Os registros de erro do administrador, que acredito estarem relacionados, são todas variações de TypeError: X is not a function para o ativo pretty-text-bundle ou ember_jquery (o mesmo erro do post original).

→ Acabei de atualizar para a versão 2.5.0.beta3 e retornarei com um relatório se isso parecer resolver o problema.

Reprodução

Não consegui reproduzir esse erro usando o Modo Seguro. Se eu ativasse o Modo Seguro, o erro desapareceria. Mas, ao “desativar” o Modo Seguro, também não consegui reproduzir o erro novamente.

Esse tópico estava reproduzindo o erro por um tempo via acesso como convidado em um navegador da web:
:rocket: RWJS v0.6.0 já está disponível

Um usuário relatou a saída de https://community.redwoodjs.com/logs/report_js_error, que exibiu:
Rate Limited (Limite de Taxa Excedido)

Consegui reproduzir esse erro e o correspondente Rate Limited no meu Mac como convidado no Safari. Mas o mesmo tópico carregou normalmente no Firefox (novamente como convidado).

Configurações do Site/Hospedagem

Nosso site usa dois plugins:

Hospedado na DigitalOcean com uma configuração muito próxima das instruções de instalação fornecidas.

Provavelmente algo no seu tema, se o problema desaparece no modo seguro?

Possível, mas bastante comum por lá…

Vou continuar tentando. É que toda vez que penso que tenho um exemplo reproduzível, o problema se resolve.

Talvez seja um problema de cache? Como eu poderia verificar?

Se você não consegue reproduzir isso aqui, é 100% algo na sua configuração, de uma forma ou de outra.

Entendido. E eu realmente tive essa experiência aqui no meta.discourse.org, quando configurei nosso site em março. Estava pesquisando no Google por informações sobre as configurações da integração com o Slack, cliquei em um link para um tópico e acabei com uma tela quase em branco, com o cabeçalho do título repetido várias vezes (veja a segunda captura de tela na minha postagem original aqui). Na época, contornei o problema usando a versão em cache do Google e desde então não tive mais esse problema. E eu conseguia acessar outros tópicos e a página inicial sem problemas.

Que estranho.

Vou continuar investigando e com certeza darei um retorno. Com sorte, talvez isso tenha sido resolvido de alguma forma com a atualização beta3. :crossed_fingers:

Por fim, estamos muito, muito felizes com o Discourse e com a rapidez com que nossa comunidade está tomando forma em apenas 6 semanas. Estou inspirado e só posso sonhar que um dia as pessoas dirão o mesmo sobre o RedwoodJS, quando ele tiver tempo de amadurecer um pouco.

Obrigado.

Você possui algum proxy ou alguma outra configuração incomum?

Atualização
A atualização para a Beta3 parece ter eliminado o problema para a maioria dos usuários que relatavam dificuldades. Vamos torcer!

Sobre: Proxies/Configuração
Estou usando o Cloudflare 1.1.1.1 para o DNS da minha rede, mas nada personalizado além disso.

Estava me perguntando se poderia estar relacionado a um bloqueador de anúncios — algumas pessoas relataram que funcionava bem no modo anônimo do Chrome, mas não fora dele, por exemplo.

Ainda estou tentando entender…