Skip to content

Fix this error

PHP: Allowed memory size exhausted

Dasun Kalupahana 145 views

The error

Error

PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 20480 bytes)

Why it happens

The script used more memory than PHP's memory_limit (134217728 bytes = 128 MB). Most often it loads too much at once, like Model::all() on a big table, or builds a huge array or file in memory. Composer can hit it too.

How to fix it

  1. Process big tables in pieces with chunk(), chunkById() or lazy() instead of all() / get().
  2. Only select the columns you need.
  3. If the job really needs more, raise memory_limit in php.ini (or per script). For Composer: COMPOSER_MEMORY_LIMIT=-1 composer update.
// Instead of User::all()
User::select('id', 'email')->chunkById(500, function ($users) {
    foreach ($users as $user) {
        // ...
    }
});
Still stuck? Send us the full error and what you tried. We add the answers here.

Learn more on the blog

Get new articles in your inbox

Practical tutorials and deep dives, about once a week. No spam, unsubscribe anytime.

Privacy policy

Add DEV Talk to your Home Screen

  1. 1 Tap the Share button in Safari's toolbar.
  2. 2 Scroll down and tap Add to Home Screen.
  3. 3 Tap Add. Open it from the Home Screen to read like an app and to turn on notifications with the bell.

We use cookies to improve your experience and analyze traffic. By continuing, you agree to our Privacy Policy.