Puma es un servidor web, muy rápido, altamente concurrente y es el servidor por defecto a partir de Rails 5, además es muy sencillo de configurar en Rails 4, pero al introducirlo junto con byebug tiende a generar un problema no menor, mientras haces debugging de tu código es posible que el worker de puma muestre un timed out error y luego de tener que terminar el servidor corriendo dentro de la consola, tengas que abrir una nueva para poder ver lo que escribes.

Solución al error de timed out worker

La solución a este problema consiste en modificar el archivo de configuración de puma.rb para darle más tiempo a los workers donde agregaremos:

worker_timeout 500

Versión mejorada con variables de entorno

O podemos generar una configuración mejor ocupando las variables de entorno y de esa forma mantener el valor de 60 segundos por defecto o escoger uno específico para producción.

ENV['WORKER_TIMEOUT'].to_i || 60

Luego en nuestras variables de entorno, o en un archivo .env (si estamos ocupando la gema dot-env), podemos definir un tiempo más largo para el término, como por ejemplo unos 500 segundos (un poco más de 8 minutos) lo que es tiempo suficiente para encontrar nuestro error. De esta forma ya no tendremos problemas con puma y byebug.