Start request Start request

WordPress 503 Errors Caused by PHP-FPM Worker Exhaustion

A troubleshooting walkthrough involving intermittent 503 responses on a WordPress website.

The visible symptom was an unavailable website. The useful evidence appeared deeper in the PHP and traffic layers.

The symptoms

Intermittent 503 responses

The website worked normally at times but returned HTTP 503 Service Unavailable responses appeared when application demand increased.

No permanent outage

Because the failure was intermittent, checking the website only once could easily miss the underlying problem.

WordPress was only the visible layer

The browser showed a website failure, but the cause required checking PHP execution and request pressure.

What the evidence showed

The 503 response was only the visible symptom. The useful evidence came from comparing PHP capacity, request pressure and application behaviour.

503 responses appeared under increased application demand

PHP execution capacity became saturated

Additional requests had insufficient worker capacity

Traffic pressure contributed to the failure pattern

The database remained available during the affected period

The failure was concentrated in the application execution layer

The failure path

A 503 error does not automatically mean the web server itself has failed.

1. Requests reached the server

The site was reachable and requests were arriving, which narrowed the investigation beyond DNS and connectivity.

2. PHP capacity became saturated

PHP-FPM had insufficient available workers to process all incoming application requests at the same time.

3. Requests waited or failed

Once PHP execution capacity was exhausted, additional requests could not be handled normally and 503 responses appeared.

4. Traffic amplified the problem

Request volume and application behaviour increased pressure on the limited PHP worker pool.

Root cause

The immediate failure was PHP-FPM worker exhaustion. A restart could temporarily restore capacity, but it would not explain why the worker pool became saturated.

Capacity, request behaviour and the reason workers remained occupied had to be considered together.

PHP-FPM capacity was insufficient during peak request pressure

Long-running or expensive requests could keep workers occupied

Traffic volume amplified pressure on the PHP worker pool

Available server resources limited practical concurrency

Application behaviour contributed to sustained worker usage

A permanent resolution required addressing the cause, not only restarting PHP

Why the problem could return

Restarting PHP-FPM can temporarily clear occupied workers, making the website appear fixed.

If the same traffic and application behaviour remain, the worker pool can become exhausted again. The useful troubleshooting question is why the workers were saturated in the first place.

Similar failures can involve PHP-FPM, web servers, resource pressure or application behaviour. See Linux server troubleshooting