Não é possível salvar a Categoria/Rótulos Padrão Monitorados

Abri um tópico separado para este problema. Estou na branch tests-passed e já fiz uma rebuild. O modo seguro ainda apresenta o problema.
(2cb805a683)

Log de erro anonimizado: TypeError: Cannot read property 'categories' of undefined at https://domain - Pastebin.com

Passos para reproduzir? Nada acontece quando seleciono uma categoria como padrão de acompanhamento e pressiono o botão verde. O X vermelho desfaz a ação, e o símbolo de marca de seleção verde não faz nada (deveria perguntar se desejo aplicar a usuários antigos; funciona em outro fórum que instalei).

Edição: Título mais claro

Isso não é a solução nem o caso.

Para atualizar meu caso: Fiz uma instalação limpa em um novo servidor e funcionou; consegui ativar a configuração sem problemas. Restaurei o backup do meu site de produção e o mesmo problema apareceu. Estou completamente perdido. Foi uma instalação limpa há apenas dois dias e não faço ideia do que fiz de errado.

Se alguém da equipe quiser verificar o problema pessoalmente, posso fornecer o login de administrador do meu site de staging, e vocês podem fazer o que for necessário para investigar o problema.

Você fez uma importação em um host com outro nome de host e o restaurou neste servidor?

Sim. Para ser específico, configurei o servidor de staging em stage1.domain.com, executei a configuração inicial, habilitei as restaurações, fiz o upload disso pela interface web e restaurei.

Mas deixe-me perguntar assim: o nome de host localizado em /etc/hosts deve corresponder exatamente ao meu nome de host no arquivo app.yml do Discourse?

E como isso se relaciona com o nome de host que configurei inicialmente no DO e com o nome que a instância (droplet) tem dentro do DO?

Não, o nome do host em /etc/hosts é irrelevante. Se fosse importante, você seria solicitado a confirmá-lo no guia de instalação.

O guia ao qual Jay linkou contém todas as etapas necessárias para alterações de nome de domínio.

Vocês dois leram essa questão? Ela não tem relação com uma mudança de domínio e é realmente frustrante ver pessoas jogarem apenas uma URL para mim. Eu conheço o guia. Por que todos continuam se referindo a ele? Esse não é o problema; meu site está funcionando bem, exceto pelo bug.

Sinto que estou sendo deixado no escuro com essa questão maluca após dois dias. Por favor, leiam a OP novamente. NÃO CONSIGO SALVAR AS CONFIGURAÇÕES PADRÃO DE MONITORAMENTO — o nome do host não tem relação e está correto, então não preciso daquele guia, de novo.

Não há ninguém da equipe por aqui? É super legal instalar isso em menos de 30 minutos, mas assim que surgem problemas, notei que muitos tópicos do fórum ficam abertos e sem solução. Começando a sentir que foi um erro fazer o self-hosting disso.

Então, está funcionando.

Até você restaurar seu backup.

Isso sugere que há algo errado com os dados que você restaurou. Sugerimos uma solução, mas você não disse muito sobre como criou os dados, então nossa sugestão pode estar errada.

Sim. Este é o trabalho deles, então provavelmente não estarão disponíveis até segunda-feira.

A qual solução você está se referindo? Até agora, fiz muitas instalações de acordo com os guias e o nome do host está correto. Minha sugestão sobre o arquivo etc/hosts era apenas uma possibilidade de problema, que agora sei que não tem nada a ver com isso. Então, sim, podemos afirmar que o problema está no meu backup ou banco de dados.

Mas eu não fiz nada estranho. Meu fórum lançou e usuários se cadastraram — eu nunca mexi no meu banco de dados. Isso me deixa completamente sem ideia de como resolver esse problema.

Você pode me dizer o que precisa para me ajudar a resolver isso? Eu forneci um link do Pastebin no post original com meu log de erro. Isso ajuda?

Como criei os dados de restauração. Os dados são, na verdade, apenas um banco de dados de dois dias de idade, criado do zero.

  1. Backup feito no site de produção
  2. Arquivo tar.gz baixado através da URL enviada por e-mail
  3. Ambiente de staging configurado em um novo droplet da DO.
  4. Restaurações permitidas nas configurações e restauradas através da interface de administração.

Esse problema deve estar corrigido,

Foi isso que eu pensei e esperei ao ver este commit. O site de staging recém-configurado realmente tem essa nova build, mas o problema ainda persiste.

Edição: meu ambiente de staging na verdade tem uma atualização — estou instalando agora e darei um retorno.

Edição 2: @dax Posso confirmar que atualizei meu domínio stage1 e ainda tenho o mesmo problema.
Instalado
2.4.0.beta6
(6f6a02645c)

Você se sente confortável em fazer algum depuração? Não consigo reproduzir seu erro e, como está em produção, seus logs ainda não me dizem o suficiente.

O que você pode fazer:

  • abra o console de desenvolvedor do Chrome (é possível fazer isso em outros navegadores, mas este é o que conheço melhor)
  • realize a ação problemática
  • copie a primeira linha da pilha que, no seu pastebin, seria: https://domain.com/assets/application-1beed43f1604869d65e7d466de8cb9119afcf1cbbc2eae42c98ae8f7a5d0edf9.js:1:2086519
  • pressione cmd + shift + p (não sei no Windows, mas deve ser algo próximo disso)
  • certifique-se de remover o > e depois cole https://domain.com/assets/application-1beed43f1604869d65e7d466de8cb9119afcf1cbbc2eae42c98ae8f7a5d0edf9.js:1:2086519; ele deve encontrar um arquivo, clique nele
  • clique em {} no canto inferior esquerdo; isso deve mostrar algum código. Copie e cole esse bloco aqui, por favor

(Possivelmente, o link https://domain.com/assets/application-1beed43f1604869d65e7d466de8cb9119afcf1cbbc2eae42c98ae8f7a5d0edf9.js:1:2086519 pode ser clicável no seu console, e você pode apenas clicar nele e pressionar {} para vê-lo formatado).

@j.jaffeux Consegui seguir seus passos, mas, infelizmente, ao clicar no link (ou pesquisá-lo), sou levado a um arquivo que está vazio:

Se quiser, posso fornecer os detalhes do meu ambiente de staging para que você possa fazer alguns testes. (É um ambiente online).

Claro, se você conseguir reproduzir no staging também, envie os detalhes por mensagem, por favor.

Ok, isso está acontecendo neste bloco de código:

define("discourse/routes/about", ["exports", "discourse/lib/ajax", "discourse/routes/discourse"], function(e, t, n) {
    "use strict";
    Object.defineProperty(e, "__esModule", {
        value: !0
    }),
    e.default = n.default.extend({
        model: function() {
            var o = this;
            return (0,
            t.ajax)("/about.json").then(function(i) {
                var t = []
                  , n = []
                  , s = moment().locale("en").utc().subtract(1, "year");
                i.about.admins.forEach(function(e) {
                    moment(e.last_seen_at) > s && t.push(e)
                }),
                i.about.moderators.forEach(function(e) {
                    moment(e.last_seen_at) > s && n.push(e)
                }),
                i.about.admins = t,
                i.about.moderators = n;
                var e = i.about.category_moderators;
                return e && e.length && e.forEach(function(e, t) {
                    var n = o.site.categories.findBy("id", e.category_id);
                    i.about.category_moderators[t].category = n
                }),
                i.about
            })
        },
        titleToken: function() {
            return I18n.t("about.simple_title")
        },
        actions: {
            didTransition: function() {
                return this.controllerFor("application").set("showFooter", !0),
                !0
            }
        }
    })
})

O qual está aqui no código fonte:

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/routes/about.js.es6#L25

Ainda não tenho certeza de como essa ação está impactando isso… vou investigar amanhã.

Obrigado por investigar isso. Por favor, meu fórum está funcionando perfeitamente, exceto por isso; não há pressa. É domingo à noite, aproveite e obrigado por confirmar o problema.

O problema ainda ocorre na versão 2.4.0beta7.

Edição 2: Acabei de descobrir que também não consigo salvar as seguintes configurações:

Após cada commit, eu continuava tentando.

Acabei de fazer uma recompilação porque queria instalar o plugin de impressão digital. Não sei se vocês corrigiram isso ou se foi algo mágico? Mas… finalmente consegui salvar minhas configurações padrão de monitoramento. Obrigado!

Foi corrigido no commit