Skip to content

The publication for web craftspeople Wednesday, 14 October 2026

Back-end

Laravel 13.36.0 Hardens Queue Workers and Adds Named S3 Credential Providers

Laravel 13.36.0 fixes the exit code of stuck queue workers, adds support for multiple named S3 credential providers, and closes a memory leak in test suites. A dense release, one month after 13.35.

Laravel 13.36.0

Released on October 13, Laravel 13.36.0 bundles around fifty changes across queues, storage
and Eloquent. No breaking changes are announced, but several fixes touch behavior teams have
reported in production for months, notably queue workers that got stuck with no exit code an
orchestrator could act on.

More predictable queue workers

The most awaited fix concerns the exit code of workers that hit their timeout: it used to be
silently swallowed, which kept Supervisor or systemd from detecting a stuck worker and restarting
it. Workers can now also flush sticky connections between jobs instead of holding them open until
the process stops, which limits connection leaks on high-throughput queues.

S3 storage and named credential providers

The S3 driver now supports multiple named credential providers within the same project, useful
for applications writing to several accounts or regions, along with Cloud IAM disks for
environments where key rotation is managed outside the codebase. The change fits a broader trend
in the framework: pushing secret management further into infrastructure rather than the
.env file.

Eloquent: narrow but numerous fixes

The most structural fix touches morph map alias resolution in constrain(),
morphWith() and loadMorph(): declared aliases weren’t always honored,
forcing some projects to fall back on the full class name as a workaround. touch()
now works correctly on HasOneOrManyThrough relations, and
Schema::getColumn() becomes case-insensitive, avoiding false negatives on certain
database engines.

AreaBefore 13.36.0Since 13.36.0
Stuck workersExit code swallowed, undetectedExit code usable by the orchestrator
Sticky connectionsHeld until the worker stopsFlushed between jobs
S3 credentialsA single default providerMultiple named providers + IAM disks
Redis clusterphpredis client stuck if no node reachableClient rebuilt automatically
Tests (Prompts)Memory leak on long suitesLeak fixed

Redis, notifications and a test-suite memory leak

On the Redis side, the phpredis client is now rebuilt automatically when no cluster node is
reachable, instead of staying stuck. Notifications fix a defect where
Notification::locale() could bleed into an unrelated following notification. Finally,
a memory leak caused by the Prompts component affected long test suites, a problem some teams
worked around by splitting their CI pipelines — a workaround that is no longer necessary.

// config/queue.php — new in 13.36: background connection by default
'connections' => [
    'redis' => [
        'driver' => 'redis',
        'connection' => 'default',
        'queue' => env('REDIS_QUEUE', 'default'),
        'retry_after' => 90,
        'block_for' => null,
        'after_commit' => false,
    ],
],

The exit code of queue workers, long invisible to monitoring tools, finally becomes something orchestrators can act on.

The Eloquent fixes around morph map aliases deserve a manual check on projects using
enforceMorphMap(): the behavior changes, even though it moves closer to what the
documentation already described.

Strictly speaking the update is minor in terms of versioning, but the volume of fixes — about
fifty pull requests merged in a month — illustrates a release pace that teams automating their
updates through command-line tooling have every reason to track closely rather than let pile up.

Key takeaways

Laravel 13.36.0 changes nothing in the framework’s public API but closes real operational blind
spots: worker supervision, S3 credential rotation and Redis cluster stability. Projects running
high-volume queues should upgrade promptly; others can wait for their next maintenance window
without urgency.

On the engagements where I supervise Laravel queues in production, the swallowed exit code of
stuck workers has been a source of silent incidents for months: the worker would crash, Supervisor
wouldn’t restart it, and only a latency alert would reveal the problem. This fix alone justifies
the upgrade. — Simon Janvier

Further reading: the full release notes are available on
the framework’s GitHub repository.

Read next