Script @php artisan package:discover handling the post-autoload-dump event returned with error code 255
Asked Answered
B

27

85

I moved my project from desk to another.
When I run php artisan it does not work.

I tried to run composer update, but it returns the error

Script @php artisan package:discover handling the post-autoload-dump event returned with error code 255

Bittersweet answered 13/6, 2018 at 15:25 Comment(4)
For me it was caused by folder permissions. chown -R u:g, and chmod -R 755 did the job for me.Doing
it was an issue in a trait but i couldnt find no matter what, using something like packagist.org/packages/nunomaduro/larastan can catch thatReclaim
I tried all the soultion and nothing worked I am running laravel 4.2.10 and php 7 @Ghyath DarwishLivvi
This could happen for n number of reasons hence any or all the of the answers work for any of us. To know the exact reason check your PHP error log file. This will tell you exactly where the issue is.Engrave
O
161

This is how I solved this after an upgrade from laravel version 6.x - 7.x:

In App\Exceptions\Handler changed

//Use Exception;
Use Throwable;

Then methods to accept instances of Throwable instead of Exceptions as follows:

//public function report(Exception$exception);
public function report(Throwable $exception);

//public function render($request, Exception $exception);
public function render($request, Throwable $exception);

In config\session.php:

//'secure' => env('SESSION_SECURE_COOKIE', false),
'secure' => env('SESSION_SECURE_COOKIE', null),

Then run composer update

Onset answered 31/3, 2020 at 10:8 Comment(5)
Thanks, this is the correct answer when upgrading, as said in upgrade guide: laravel.com/docs/7.x/upgrade#symfony-5-related-upgradesRackrent
This worked for me too. Thanks. I upgraded from laravel 6 to laravel 7.Climate
Every sol, on this page doesn't seem to work for me. What could be the reason? Any ideas?Ossicle
This is not included on Laravel 9 upgrade documentationScrewy
This one worked for latest Laravel 11 upgrade.Thanks :)Belvia
T
33

I solved the problem this way:

cd bootstrap/cache/
rm -rf *.php

The bootstrap directory contains the app.php file that initializes the structure. This directory also houses a cache directory that contains structure-generated files for performance optimization, such as files and route cache services. Laravel stores configuration files, provider, and cached services to optimize the fetching of this information. The problem with me was when the other developer ran the 'php artisan config: cache' command on your machine and since the cache folder contains files that can be deleted, I deleted them and solved the problem.

Toni answered 7/12, 2018 at 16:50 Comment(3)
It would help to explain what that is and why did it solve the problemBicknell
The bootstrap directory contains the app.php file that initializes the structure. This directory also houses a cache directory that contains structure-generated files for performance optimization, such as files and route cache services. Laravel stores configuration files, provider, and cached services to optimize the fetching of this information. The problem with me was when the other developer ran the 'php artisan config: cache' command on your machine and since the cache folder contains files that can be deleted, I deleted them and solved the problem.Toni
DON'T RUN THIS! This is really dangerous command written as it is! For example, if he's not in the project root directory, cd will fail, but rm command is going to execute! Run this either as rm -rf bootstrap/cache/* or cd bootstrap/cache && rm -rf *phpMerilyn
O
29

I was upgrading my Laravel from 5.8 to 8.0 and I got this error.

So my fixes were

  1. As @nobuhiroharada mentioned that I had missed .env file in my project

  2. Second is that Laravel removed Exception and replaced it with Throwable. So we need to fix that in our app\Exceptions\Handler.php. One can refer Medium.com for the error fix.

  3. In the upgrade guide of Laravel 8.x you need to update the dependencies like this

  4. Next, in your composer.json file, remove classmap block from the autoload section and add the new namespaced class directory mappings:

"autoload": {
    "psr-4": {
        "App\\": "app/",
        "Database\\Factories\\": "database/factories/",
        "Database\\Seeders\\": "database/seeders/"
    }
},
  1. Finally from bootstrap\cache delete the cache files and run composer update.

These 5 steps might help you remove the error you are facing in your Laravel Project.

Oddment answered 20/10, 2020 at 11:22 Comment(3)
This solved my problems after hours of searchingShanta
Yeah, this is the definitive answer.Ziegler
After searching alot, this one helped me.Crossjack
M
27

If this happened after Laravel update from 6.x to 7.x, then this could be due to the update of Symfony. See the upgrade guide of this part: https://laravel.com/docs/7.x/upgrade#symfony-5-related-upgrades

Montgolfier answered 10/3, 2020 at 19:49 Comment(3)
Thanks for posting this, missed this part of the upgrade guide and got caught out.Herr
This is the fixBently
Thanks for the heads up! Commit the changes in Handler.php file like Laravel Docs say then it is good to go!Immersion
D
19

This happens because you have upgraded to Laravel 7.

To fix it, update app/Exceptions/Handler.php like so:

<?php

namespace App\Exceptions;

use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Throwable; // <-- ADD THIS

class Handler extends ExceptionHandler
{
    public function report(Throwable $exception) // <-- USE Throwable HERE
    {
        parent::report($exception);
    }
    public function render($request, Throwable $exception) // AND HERE
    {
        return parent::render($request, $exception);
    }
}

This is documented in the official upgrade guide here:

https://laravel.com/docs/7.x/upgrade#symfony-5-related-upgrades

Dragoman answered 23/7, 2020 at 10:27 Comment(1)
Mine was a missing bracket in Handler.php so thanksPixie
W
10

I got the same problem in Win 8 and solve it:

Here is the steps.

Step-1: Go to your project directory

Step-2: And type command cd bootstrap/cache/

Step-3: Again type command del -rf *.php

Step-4: Update your composer composer update

Step-5: Now you are done: php artisan serve

Thanks.

Winebibber answered 1/4, 2019 at 17:3 Comment(0)
P
8

Do you have .env file in your new project?

I had same error message. When I add .env file, error is gone.

success message like this.

Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover
Discovered Package: fideloper/proxy
Discovered Package: ixudra/curl
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: socialiteproviders/manager
Package manifest generated successfully.

I hope this will help you.

Piffle answered 6/7, 2018 at 7:23 Comment(0)
S
3

maybe you have an error in the project code (for example, in routes or controller). This may be one of the reasons for this error.

In my project, the web.php file has a syntax error. I defined this when I started the php artisan command

C:\OSPanel\domains\lara.shop.loc>php artisan
In web.php line 
  syntax error, unexpected end of file  
Scarabaeus answered 13/1, 2019 at 15:33 Comment(0)
S
3

Error is connected with command: php artisan package:discover

So in first step remove this command from composer.json

In second step ensure, that error is visible by adding on the top of /artisan file:

ini_set('display_errors', true); 
ini_set('log_errors', true);
ini_set('error_log', '/app/storage/logs/php.log');

Then manually run php artisan and see what a problem is, it would be many, for instance: Class 'Memcache' not found

Siskind answered 25/8, 2023 at 10:45 Comment(1)
Upgrading from Laravel 9 to 10, following your instructions help me to track down the issues causing the failure of php artisan package:discover. Thank you.Occasional
P
2

Same issue when I update laravel from 6.x to 7.x

I tried the most voted answer but it didn't work, then I used php artisan serve I noticed that:

RuntimeException

In order to use the Auth::routes() method, please install the laravel/ui package.

Try composer require laravel/ui maybe it will work.

Prudi answered 3/6, 2020 at 4:9 Comment(0)
D
2

I solve this error by deleting the vendor table then run composer update. I'm using Laravel 7. So, if you are not updating from the older Laravel version, maybe this is the solution.

Dewayne answered 4/9, 2020 at 23:59 Comment(0)
B
1

I had this same problem when running composer update in a Laravel project. In the package.json it's configured to run artisan package:discover, which failed with:

Class 'Symfony\Component\Translation\Translator' not found in vendor/nesbot/carbon/src/Carbon/Translator.php on line 18

When I looked in the vendor/symfony/translation directory I found that it was completely empty, which explained the error.

The solution was to completely delete the vendor directory and then re-run composer update. This was the only way that I was able to make composer install the missing files.

Broadfaced answered 22/9, 2019 at 11:8 Comment(0)
S
1

Nothing worked, so I installed a new project, and I read Handler.php in App\Exceptions, it was different, probably because I copied some solution and Internet and deleted the following:

protected $dontReport = [
    //
];

protected $dontFlash = [
    'password',
    'password_confirmation',
];

I copy here all of Handler.php generated by laravel 7.5, may be useful for someone:

<?php

namespace App\Exceptions;

use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Throwable;

class Handler extends ExceptionHandler
{
    /**
     * A list of the exception types that are not reported.
     *
     * @var array
     */
    protected $dontReport = [
        //
    ];

/**
 * A list of the inputs that are never flashed for validation exceptions.
 *
 * @var array
 */
protected $dontFlash = [
    'password',
    'password_confirmation',
];

/**
 * Report or log an exception.
 *
 * @param  \Throwable  $exception
 * @return void
 *
 * @throws \Exception
 */
public function report(Throwable $exception)
{
    parent::report($exception);
}

/**
 * Render an exception into an HTTP response.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  \Throwable  $exception
 * @return \Symfony\Component\HttpFoundation\Response
 *
 * @throws \Throwable
 */
public function render($request, Throwable $exception)
{
    return parent::render($request, $exception);
}
}
Succession answered 11/4, 2020 at 1:57 Comment(0)
T
1

I deleted composer.lock file and ran composer update.

That solved mine

Toothpick answered 16/12, 2020 at 6:32 Comment(0)
W
1

I had the same issue, my problem was the PHP version of the server account did not match my Docker container. The SSH terminal was using the global php version for the server.

php -v

Confirm it's the version your project needs.


Composer did warn me that a higher php version was required but I rm -rf'd /vendor and ./composer.lock without paying too much attention to the warnings!

Wear answered 30/1, 2022 at 0:45 Comment(0)
H
1

Got the same problem.

  1. php artisan doesn't work.

  2. composer install got error:

Script @php artisan package:discover handling the post-autoload-dump event returned with error code 255

And this works for me.

When I switch another linux user. It works. some files are owned by another linux user. So I use root account and change all the project file to the specific user,

chown -R www:www project/

and use that user to execute composer cmd

and then it works.

Heterogenous answered 11/10, 2022 at 8:53 Comment(0)
Q
1

My case/solution, in case it helps anyone...

I copied my repo over from my old Windows computer to a new one, and installed the latest php.

composer install was returning:

Root composer.json requires php ^7.1.3 but your php version (8.1.10) does not satisfy that requirement

...which I thought was odd (assuming 8 satisfied ^7), so I continued on with composer install --ignore-platform-reqs, and ended up with this particular issue.

After trying a bunch of other possible solutions, what ended up working for me was simply downgrading to the same PHP version from my old machine (7.4.33).

Quiteris answered 8/11, 2022 at 3:32 Comment(0)
P
0

This is not an actual error. If you look a bit above you'll see the actual error. In my case, there was an error in my code:

PHP Fatal error:  Declaration of 
App\Exceptions\Handler::render($request, App\Exceptions\Exception $exception)
must be compatible with 
Illuminate\Foundation\Exceptions\Handler::render($request, Throwable $e)

It is not possible to tell you what is actually a problem in your code, so you have to look real reason for this error in your stack trace.

Pemba answered 7/4, 2020 at 22:25 Comment(0)
I
0

I deleted my project I created a new folder and cloned the repository again and after that I gave composer install / update.

Ichthyosaur answered 9/9, 2020 at 14:25 Comment(0)
M
0

In my case there is missing folder and its file Kernel.php in

app/Console

So I created app/Console/Kernel.php using code from previous project. Now everything working fine.

Markowitz answered 6/8, 2021 at 17:26 Comment(0)
H
0

Make sure your config\constants.php (and/or resources\lang\en\local.php) has no syntax errors. I get this error a lot by missing commas in constants.php file.

Hustler answered 18/9, 2021 at 13:28 Comment(0)
I
0

I got the same problem in Win 10 and solve it:

Here is the steps.

Step-1: Go to your project directory

Step-2: Update your composer

composer update

Step-3: Now you are done: php artisan serve

Infarction answered 20/4, 2022 at 15:56 Comment(0)
P
0

If you have this error the simplest way is you can try using composer install instead of composer update

Penelopa answered 16/7, 2022 at 16:40 Comment(0)
V
0

For me it was related to Kernel.php

I was adding new schedule task into the Kernel. I also updated some controllers, views, and installed twilio extension.

The error did not provide more information than

Script @php artisan package:discover handling the post-autoload-dump event returned with error code 255

@Suresh Pangeni refences the Kernel.php doc so I checked by doc that is in PROJECTFOLDER\app\Console\Kernel.php

protected $commands = [
    Commands\Inspire::class,
    Commands\Test::class
    \App\Console\Commands\Message::class,
];

Missing Comma between Commands\Test::class and the next line didn't let me proceed. It provided no further warning or information when I ran composer dump-autoload.

Hope this can help someone else that has a similar issue!

Varipapa answered 4/9, 2022 at 4:2 Comment(0)
C
0

I was using Laravel 9.x and got the same error after trying to install this package maatwebsite/excel!

thanks to @samuel-terra and @dqureshiumar there is the solution worked for me:

  1. clear bootstrap/cache:
cd bootstrap/cache/
rm -rf *.php
  1. then run composer update:
composer update
Cur answered 2/12, 2022 at 21:23 Comment(0)
C
0

My problem was __construct method.

composer.json

"php": "^8.1",
"laravel/framework": "^9.19",

Handler.php

The problem originates from this code:

this->container->make(FlasherInterface::class);

My solution, I removed the construction directly and the problem is solved.

public function __construct(Container $container)
{
    parent::__construct($container);
    $this->flasher = $this->container->make(FlasherInterface::class);
    //$this->request = $this->container->get(Request::class);
}
Calipash answered 11/12, 2022 at 22:0 Comment(0)
I
-4

Getting this error when my composer version 2.x then i rollback this

composer self-update --1

Now its perfectly working

Ihs answered 22/1, 2021 at 8:36 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.