Laravel: Symfony\Component\ErrorHandler\Error\FatalError: Maximum execution time of 30 seconds exceeded
A web request ran longer than PHP's max_execution_time and was killed.
Maximum execution time of 30 seconds exceededSymfony\Component\ErrorHandler\Error\FatalError: Maximum execution time of 30 seconds exceededMaximum execution time of 60 seconds exceeded LaravelMaximum execution time of 30 seconds exceeded vendor/laravel Meaning
Long tasks shouldn't run in web requests. Dispatch a queued job, optimise queries (indexes, eager loading to avoid N+1), cache results, or temporarily raise max_execution_time / set_time_limit(). Behind Nginx also check fastcgi_read_timeout.
Common causes
- Heavy report/export in the request
- N+1 queries
- Slow external API call
- Infinite loop
- Default 30s limit on shared hosting
⚡ Quick fix
- Move to a queued job with
dispatch() - Add indexes and eager loading (
with()) - Raise
max_execution_timeandfastcgi_read_timeoutif needed
Detailed fix by platform
Laravel
php artisan make:job ProcessReportthenProcessReport::dispatch($id);
How to diagnose
- Cause — Slow query, API or loop?
- Time — Which limit?
- Queue — Possible?
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
- Attempt to read property "x" on null Laravel/PHP 8: ErrorException: Attempt to read property "name" on null
- Command "x" is not defined Laravel: Symfony\Component\Console\Exception\CommandNotFoundException: Command "make:livewire" is not defined. Did you mean one of these?
- cURL error 28: Operation timed out (Laravel HTTP client) Laravel: Illuminate\Http\Client\ConnectionException: cURL error 28: Operation timed out after 30001 milliseconds with 0 bytes received
Most viewed in Laravel
- MassAssignmentException Laravel: Illuminate\Database\Eloquent\MassAssignmentException: Add [x] to fillable property to allow mass assignment
- The GET method is not supported for route Laravel: The GET method is not supported for route x. Supported methods: POST (MethodNotAllowedHttpException)
- 403 This action is unauthorized Laravel: Illuminate\Auth\Access\AuthorizationException: This action is unauthorized.
Other ways to find it
Where this error sits
Origin: Application & API. Errors that are often confused with or caused by this one (click to open):
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
💬 What worked for others
No tips yet — did something else fix this for you?
Share what worked for you
Tips are checked by an editor before they appear. Links are removed.
Report a correction or suggest an improvement
Last updated 4 Nov 2026