Maximum execution time of 30 seconds exceeded Laravel Origin: Application & API OSI layer 7 · Application Last updated 4 Nov 2026

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.

Exact message you may see 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
Seen on: Laravel PHP

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

  1. Move to a queued job with dispatch()
  2. Add indexes and eager loading (with())
  3. Raise max_execution_time and fastcgi_read_timeout if needed

Detailed fix by platform

Laravel

  1. php artisan make:job ProcessReport then ProcessReport::dispatch($id);

How to diagnose

  1. Cause — Slow query, API or loop?
  2. Time — Which limit?
  3. 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:

Where this error sits

Origin: Application & API. Errors that are often confused with or caused by this one (click to open):

Attempt to read property "x" on null — Laravel/PHP 8: ErrorException: Attempt to read property "name" on null (Laravel)Attempt to read prope…Command "x" is not defined — Laravel: Symfony\Component\Console\Exception\CommandNotFoundException: Command "make:livewire" is not defined. Did you mean one of these? (Laravel)Command "x" is not de…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 (Laravel)cURL error 28: Operat…Laravel: Allowed memory size exhausted (request) — Laravel/PHP: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes) in vendor/laravel/framework (Laravel)Laravel: Allowed memo…MaxAttemptsExceededException (queue job) — Laravel Queue: Illuminate\Queue\MaxAttemptsExceededException: App\Jobs\SendReport has been attempted too many times or run too long (Laravel)MaxAttemptsExceededEx…Maximum execution time — PHP Fatal error: Maximum execution time of 30 seconds exceeded (PHP)Maximum execution timeNo scheduled commands are ready to run — Laravel scheduler: INFO No scheduled commands are ready to run. (tasks never execute) (Laravel)No scheduled commands…Redis closes idle clients (timeout setting) — Redis: Closing idle client / Connection closed by server after timeout 300 (Redis)Redis closes idle cli…Maximum e…

Explore the map of this error Full error map →

🧠 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.