Invalid input for update_ip_address

Qué suerte tienes. Debido al mayor coste, tuvimos que volver a la SKU V1 tan pronto como terminó la vista previa de V2.

De todos modos, parece que este problema ya fue abordado aguas arriba mediante una PR fusionada y debería estar incluido desde rack 2.0. Pero según este problema, aún falta en las versiones actuales.

Temporalmente, aplico un parche durante CI/CD para resolver este problema. No es lo ideal, pero funcionará hasta que veamos la corrección en una futura versión de rack o Discourse.

Si alguien está interesado, esta es la parte que debes modificar para eliminar el puerto extra en lib/auth/default_current_user_provider.rb:

if current_user && should_update_last_seen?
  u = current_user
  ip_port_split = request.ip.split(':')
  ip_only = ip_port_split.first
  Scheduler::Defer.later "Updating Last Seen" do
    u.update_last_seen!
    u.update_ip_address!(ip_only)
  end
end

No sé si es buena idea reemplazar cualquier aparición de request.ip con esta solución rápida en otras partes de ese archivo o en otros (email_controller.rb, 006-mini_profiler.rb, request_tracker.rb), pero nos funciona.
Como dije, aplicarlo como un parche durante tus procesos de construcción/CI mantiene la base de código limpia y actualizable.

Cualquier solución “más elegante” será bienvenida.