chatwoot-develop/progresso/resolucao-boot-rubyllm.md
2026-01-20 14:03:27 -03:00

1.6 KiB

Resolução: Boot Loop (RubyLLM) e Onboarding Infinito

Objetivo

Corrigir falha na inicialização do container (CrashLoopBackoff) e redirecionamento incorreto para o fluxo de onboarding após atualização da stack.

Contexto

  1. Erro de Boot: O arquivo config/initializers/ruby_llm.rb tentava configurar google_api_key, propriedade inexistente na versão atual da gem, causando exceção fatal na inicialização do Rails.
  2. Onboarding Infinito: O arquivo db/seeds.rb setava incondicionalmente a chave Redis de onboarding em produção, fazendo com que usuários existentes fossem redirecionados para criar conta (causando erro de chave duplicada).
  3. Falta de Versionamento: Impossibilidade de verificar qual versão do código estava rodando no container.

Alterações Realizadas

1. Correção config/initializers/ruby_llm.rb

  • Removida a linha config.google_api_key = ....
  • Adicionado bloco begin/rescue para capturar erros de configuração do LLM sem derrubar a aplicação.

2. Correção db/seeds.rb

  • Adicionada verificação if User.count.zero? antes de ativar o modo onboarding.

3. Versionamento docker/Dockerfile

  • Adicionado suporte a ARG BUILD_SHA.
  • O hash do commit é persistido em /app/BUILD_SHA durante o build.

Como Validar

  1. Acessar console do container.
  2. cat /app/BUILD_SHA deve mostrar "dev" ou o hash do commit.
  3. bundle exec rails runner "puts 'OK'" deve rodar sem erros de undefined method.
  4. Acessar a home não deve redirecionar para /installation/onboarding.

Reversão

Reverter os commits nos arquivos citados.