diff --git a/app/controllers/admin/romaneios_controller.rb b/app/controllers/admin/romaneios_controller.rb
index 5c1253c..255b996 100644
--- a/app/controllers/admin/romaneios_controller.rb
+++ b/app/controllers/admin/romaneios_controller.rb
@@ -6,10 +6,26 @@
#
# As bases externas (espelho de rastreio e gade_entregas_*) continuam SOMENTE
# LEITURA — o que gravamos são as tabelas `romaneio*`, nossas.
+# FileUtils chegava aqui de carona no que o Rails carrega. Explícito porque o
+# upload do logo depende dele: sem o require, o dia em que o Rails parar de
+# carregá-lo o erro é um NameError no meio da gravação.
+require 'fileutils'
+
class Admin::RomaneiosController < ApplicationController
include Auditavel
- before_action :carregar_romaneio, except: %i[index create importar_planilha]
+ # ⚠️ TODA ACTION DE COLEÇÃO PRECISA ENTRAR NESTE `except`. `carregar_romaneio`
+ # faz `Romaneio.find(params[:id])`, e numa rota de coleção não existe `:id` —
+ # o find levanta RecordNotFound, que o Rails traduz em **404**. Não é erro de
+ # rota: o roteador casa certinho e a action simplesmente nunca roda.
+ #
+ # Foi o bug de 28/08/2026: `atualizar_logo` foi adicionada ao `collection` do
+ # routes.rb mas esquecida aqui, e clicar em "Trocar logo" devolvia
+ # `POST /admin/romaneios/atualizar_logo 404 (Not Found)`. Como o 404 parece
+ # "rota errada", a busca foi para todo lado menos para cá — e o sintoma que o
+ # operador via era outro ("subi o logo e o PDF não mudou"), porque o upload
+ # nunca chegava a acontecer.
+ before_action :carregar_romaneio, except: %i[index create importar_planilha atualizar_logo]
def index
authorize Romaneio
@@ -129,6 +145,14 @@ class Admin::RomaneiosController < ApplicationController
arquivo = params[:logo]
return redirect_to(admin_romaneios_path, alert: 'Escolha o arquivo do logo (PNG ou JPG).') if arquivo.blank?
+ # `params[:logo]` só é um arquivo se o