Laravel publicó la versión 13.40.0 de su framework el 3 de noviembre de 2026. La entrega trae dos mecanismos de supervisión muy esperados por los equipos que operan colas en producción, una serie de correcciones en las conexiones a bases de datos y, sobre todo, un parche de seguridad en la fachada Concurrency, que ahora autentica el sobre de resultado de cada proceso para impedir la inyección de salida en una tarea concurrente.
Qué trae la versión 13.40
La versión cubre un espectro amplio: Eloquent, colas, el planificador de tareas y el núcleo del framework. Dos novedades destacan para los equipos back-end que operan procesamiento asíncrono a gran escala, junto a una decena de correcciones en MySQL, MariaDB, PostgreSQL y SQL Server.
| Área | Cambio | Efecto práctico |
|---|---|---|
| Colas | Queue::whenJobRunsLongerThan() | Dispara una alerta cuando un job supera un umbral de duración definido |
| Planificador | Schedule::whenTaskRunsLongerThan() | Mismo mecanismo para las tareas programadas |
| Seguridad | Autenticación del sobre de Concurrency | Impide la inyección de salida en un proceso concurrente |
| Base de datos | Reconexión tras perder la conexión en una transacción | Vuelve a un punto de guardado en errores de concurrencia |
| Paginación | Corrección de cursorPaginate() en consultas union | Evita resultados de paginación incoherentes |
Vigilar los jobs y tareas que se eternizan
Hasta ahora, detectar un job de cola anormalmente lento exigía instrumentar el worker o depender de un servicio externo de supervisión. El método Queue::whenJobRunsLongerThan() permite conectar un callback directamente en el código de la aplicación, sin dependencias externas. Su equivalente para el planificador, Schedule::whenTaskRunsLongerThan(), cubre la misma necesidad para las tareas gestionadas por el Scheduler.
use Illuminate\Support\Facades\Queue;
use Illuminate\Support\Facades\Log;
Queue::whenJobRunsLongerThan(
threshold: now()->addMinutes(3),
callback: function ($job) {
Log::warning('Job con duración anormal', [
'job' => $job->resolveName(),
'queue' => $job->getQueue(),
]);
}
);El callback recibe la instancia del job en ejecución, lo que permite extraer su nombre, la cola implicada o el payload antes de avisar a un equipo de guardia. Junto con la nueva información «released» en la salida de queue:work, esta alerta cierra un punto ciego clásico de los despliegues Laravel con alto volumen de jobs.
La falla corregida en la fachada Concurrency
El cambio más sensible de esta versión afecta a la fachada Concurrency, usada para ejecutar varios callbacks en paralelo mediante procesos separados. El equipo central añadió autenticación al sobre que transporta el resultado de cada proceso, para impedir que una salida de proceso falsificada se inyecte y sea interpretada como un resultado legítimo por el proceso padre.
Un sobre de resultado sin autenticar en un mecanismo de concurrencia entre procesos equivale a confiar en cualquier dato que circule por el canal, sin importar su procedencia.
El parche no modifica ninguna firma pública: las aplicaciones que usan Concurrency::run() reciben la protección sin cambios de código. Afecta sobre todo a los entornos donde los workers de procesos concurrentes se ejecutan en contenedores compartidos o infraestructuras multiinquilino, donde la superficie de ataque entre procesos es mayor.
Cómo actualizar
La actualización sigue el ciclo de parches habitual de Laravel: un simple composer update laravel/framework basta para los proyectos que ya restringen la dependencia a la rama 13.x. No se requiere ninguna migración de base de datos, y el changelog no reporta cambios incompatibles.
whenJobRunsLongerThan() justo después de actualizar, en lugar de esperar a un incidente: el umbral se define en pocas líneas y se integra directamente en los canales de alerta existentes.Lo que hay que recordar
Laravel 13.40 añade dos mecanismos de supervisión fáciles de activar para colas y planificador, y cierra una falla de inyección en la fachada Concurrency sin romper compatibilidad. La actualización no exige cambios de código ni migraciones, lo que la convierte en una prioridad de baja fricción para cualquier aplicación en producción.
En proyectos donde jobs críticos funcionan sin supervisión dedicada, este tipo de añadido cambia más las cosas que una gran función anunciada a bombo y platillo. El parche de Concurrency también es bienvenido: pocas aplicaciones lo usan todavía, pero las que lo adoptan para paralelizar procesos pesados ganan una protección que habría sido arriesgado parchear por su cuenta. — Simon Janvier
Para profundizar: notas de versión completas en GitHub.
