Ok, então o Moin e eu estávamos conversando sobre esse caso hoje, e ela mencionou que talvez houvesse um bug ao usar “mensal”, já que o comprimento de um mês varia? Claro que ela estava certa — em parte… ![]()
De qualquer forma, fiz uma pequena investigação mais aprofundada ![]()
Na verdade, não consegui encontrar o script de automação para o schedule pm with data-explorer results na pasta plugins/automation/lib/discourse_automation/scripts do core, então ele deve estar escondido em outro lugar.
Mas analisei a lógica aqui para recorrência (presumivelmente, esse script a utiliza) em plugins/automation/lib/discourse_automation/triggers/recurring.rb:
Acredito que o código subjacente para automações mensais recorrentes esteja calculando o Nº dia da semana em vez da data real do calendário, e há uma incompatibilidade lógica com Calendar day — ao injetar BYDAY=#{count}#{byday} na RRule, a automação força um alinhamento com o dia da semana, quando deveria usar BYMONTHDAY em vez de BYDAY.
Então, se você configurar uma automação para começar em 15 de abril (que, por acaso, é a 3ª quarta-feira de abril), o sistema interpreta a regra como: executar na 3ª quarta-feira de todo mês.
Quando chega maio, a 3ª quarta-feira é 20 de maio, o que faz com que o agendamento desvie em 5 dias.
Além disso, se você configurar uma automação no dia 30 ou 31 de um mês (por exemplo, a “5ª terça-feira”), o sistema procurará pela 5ª terça-feira no mês seguinte. Se aquele mês tiver apenas 4 terças-feiras, a automação falhará completamente em encontrar uma data válida e pulará silenciosamente todo o mês.
Tenho uma correção testada e estou abrindo um PR caso a equipe queira dar uma olhada. Ele altera a lógica de Nº dia da semana para Data exata do calendário.
Aqui estão algumas capturas de tela dos meus testes e depurações:
2 instâncias, uma sem correção e outra com minha correção de lógica
Crie a mesma automação exata em ambas (a versão corrigida está à direita):
Veja as diferenças nos banners que dizem “Próxima automação será acionada em:” com um desvio de 5 dias — a versão sem correção está desviando para a terça-feira (20 de maio), em vez de 15 de maio.
Por exemplo, meses poderiam ser totalmente pulados se estivesse procurando pela 4ª quinta-feira em vez de uma data real.
Também é possível testar o mesmo resultado no console do Rails
Sem correção:
Com correção:
PR aqui:
edição: o bug parece estar afetando qualquer script de automação que use o gatilho recurring configurado para executar todo mês. ![]()
Consigo reproduzir o banner vazio às vezes também. Por exemplo, se alguém definir a data de início para 29 de abril de 2026, então não será possível encontrar a 5ª quarta-feira para maio, porque ela não existe — a automação falhará ao ser acionada aqui: (sem correção à esquerda, com correção à direita)
Parece que o bug lança um NoMethodError no Rails quando não consegue encontrar o Nº dia da semana como acima; por isso, o banner de próximo acionamento fica vazio e a execução falha:






