Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

AndrewMack's avatar

Passport fails to create the Personal Access Token

Just looking for a little guidance. Our Sys-Admin here played around with some servers and made a small mistake during some server migration. I'm not entirely sure what he did -- I've been off the past couple of days -- bought my first house (yay!)

Anyway -- he did a great job pulling in the git repo and getting the Laravel project running. He's not a Laravel guy ... nor is he much of a git guy, really ... so I'm quite happy and impressed! He got the App-Key, he ran the migration scripts for the database, he set the environment variables ... it's been great!

What I'm struggling with now is Passport. Everything is out-of-the-box here at this time. We can create a new Client; however, when we try to create a new Token we receive an exception: Trying to get property of non-object in Passport's ClientRepository at line 81.

/**
     * Get the personal access token client for the application.
     *
     * @return \Laravel\Passport\Client
     */
    public function personalAccessClient()
    {
        if (Passport::$personalAccessClient) {
            return $this->find(Passport::$personalAccessClient);
        }

        return PersonalAccessClient::orderBy('id', 'desc')->first()->client; // *** Fails here!
    }

I'm guessing it's a step missing in the installation/setup process. But he's not able to determine what step, if any, he may have missed. And I'm looking at this and thinking it should work ... I'm waiting for that "aha" or "eureka" moment to hit me ...!

I'd really appreciate some help -- whether that's a solution or simply ideas for debugging.

Thanks for taking the time to read and help!

here's the stack-trace

Whoops! Something went wrong!

Trying to get property of non-object
ErrorException
/var/www/sauce-builds-provider/vendor/laravel/passport/src/ClientRepository.php
81
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/passport/src/ClientRepository.php", "line": 81, "function": "handleError", "class": "Illuminate\\Foundation\\Bootstrap\\HandleExceptions", "type": "->", "args": [ 8, "Trying to get property of non-object", "/var/www/sauce-builds-provider/vendor/laravel/passport/src/ClientRepository.php", 81, [] ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/passport/src/PersonalAccessTokenFactory.php", "line": 71, "function": "personalAccessClient", "class": "Laravel\\Passport\\ClientRepository", "type": "->", "args": [] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/passport/src/HasApiTokens.php", "line": 67, "function": "make", "class": "Laravel\\Passport\\PersonalAccessTokenFactory", "type": "->", "args": [ 2, "abc", [] ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/passport/src/Http/Controllers/PersonalAccessTokenController.php", "line": 70, "function": "createToken", "class": "App\\User", "type": "->", "args": [ "abc", [] ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php", "line": 48, "function": "store", "class": "Laravel\\Passport\\Http\\Controllers\\PersonalAccessTokenController", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Routing/Route.php", "line": 205, "function": "dispatch", "class": "Illuminate\\Routing\\ControllerDispatcher", "type": "->", "args": [ { "uri": "oauth/personal-access-tokens", "methods": [ "POST" ], "action": { "middleware": [ "web", "auth" ], "uses": "\\Laravel\\Passport\\Http\\Controllers\\PersonalAccessTokenController@store", "controller": "\\Laravel\\Passport\\Http\\Controllers\\PersonalAccessTokenController@store", "namespace": "\\Laravel\\Passport\\Http\\Controllers", "prefix": "oauth", "where": [] }, "controller": {}, "defaults": [], "wheres": [], "parameters": [], "parameterNames": [], "computedMiddleware": [ "web", "auth" ], "compiled": {} }, {}, "store" ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Routing/Route.php", "line": 162, "function": "runController", "class": "Illuminate\\Routing\\Route", "type": "->", "args": [] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Routing/Router.php", "line": 610, "function": "run", "class": "Illuminate\\Routing\\Route", "type": "->", "args": [] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 30, "function": "Illuminate\\Routing\\{closure}", "class": "Illuminate\\Routing\\Router", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php", "line": 41, "function": "Illuminate\\Routing\\{closure}", "class": "Illuminate\\Routing\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 149, "function": "handle", "class": "Illuminate\\Routing\\Middleware\\SubstituteBindings", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} }, {} ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 53, "function": "Illuminate\\Pipeline\\{closure}", "class": "Illuminate\\Pipeline\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Auth/Middleware/Authenticate.php", "line": 43, "function": "Illuminate\\Routing\\{closure}", "class": "Illuminate\\Routing\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 149, "function": "handle", "class": "Illuminate\\Auth\\Middleware\\Authenticate", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} }, {} ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 53, "function": "Illuminate\\Pipeline\\{closure}", "class": "Illuminate\\Pipeline\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php", "line": 67, "function": "Illuminate\\Routing\\{closure}", "class": "Illuminate\\Routing\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 149, "function": "handle", "class": "Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} }, {} ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 53, "function": "Illuminate\\Pipeline\\{closure}", "class": "Illuminate\\Pipeline\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php", "line": 49, "function": "Illuminate\\Routing\\{closure}", "class": "Illuminate\\Routing\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 149, "function": "handle", "class": "Illuminate\\View\\Middleware\\ShareErrorsFromSession", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} }, {} ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 53, "function": "Illuminate\\Pipeline\\{closure}", "class": "Illuminate\\Pipeline\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php", "line": 63, "function": "Illuminate\\Routing\\{closure}", "class": "Illuminate\\Routing\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 149, "function": "handle", "class": "Illuminate\\Session\\Middleware\\StartSession", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} }, {} ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 53, "function": "Illuminate\\Pipeline\\{closure}", "class": "Illuminate\\Pipeline\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php", "line": 37, "function": "Illuminate\\Routing\\{closure}", "class": "Illuminate\\Routing\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 149, "function": "handle", "class": "Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} }, {} ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 53, "function": "Illuminate\\Pipeline\\{closure}", "class": "Illuminate\\Pipeline\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php", "line": 59, "function": "Illuminate\\Routing\\{closure}", "class": "Illuminate\\Routing\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 149, "function": "handle", "class": "Illuminate\\Cookie\\Middleware\\EncryptCookies", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} }, {} ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 53, "function": "Illuminate\\Pipeline\\{closure}", "class": "Illuminate\\Pipeline\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 102, "function": "Illuminate\\Routing\\{closure}", "class": "Illuminate\\Routing\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Routing/Router.php", "line": 612, "function": "then", "class": "Illuminate\\Pipeline\\Pipeline", "type": "->", "args": [ {} ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Routing/Router.php", "line": 571, "function": "runRouteWithinStack", "class": "Illuminate\\Routing\\Router", "type": "->", "args": [ { "uri": "oauth/personal-access-tokens", "methods": [ "POST" ], "action": { "middleware": [ "web", "auth" ], "uses": "\\Laravel\\Passport\\Http\\Controllers\\PersonalAccessTokenController@store", "controller": "\\Laravel\\Passport\\Http\\Controllers\\PersonalAccessTokenController@store", "namespace": "\\Laravel\\Passport\\Http\\Controllers", "prefix": "oauth", "where": [] }, "controller": {}, "defaults": [], "wheres": [], "parameters": [], "parameterNames": [], "computedMiddleware": [ "web", "auth" ], "compiled": {} }, { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Routing/Router.php", "line": 549, "function": "dispatchToRoute", "class": "Illuminate\\Routing\\Router", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php", "line": 176, "function": "dispatch", "class": "Illuminate\\Routing\\Router", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 30, "function": "Illuminate\\Foundation\\Http\\{closure}", "class": "Illuminate\\Foundation\\Http\\Kernel", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php", "line": 30, "function": "Illuminate\\Routing\\{closure}", "class": "Illuminate\\Routing\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 149, "function": "handle", "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} }, {} ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 53, "function": "Illuminate\\Pipeline\\{closure}", "class": "Illuminate\\Pipeline\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php", "line": 30, "function": "Illuminate\\Routing\\{closure}", "class": "Illuminate\\Routing\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 149, "function": "handle", "class": "Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} }, {} ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 53, "function": "Illuminate\\Pipeline\\{closure}", "class": "Illuminate\\Pipeline\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php", "line": 27, "function": "Illuminate\\Routing\\{closure}", "class": "Illuminate\\Routing\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 149, "function": "handle", "class": "Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} }, {} ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 53, "function": "Illuminate\\Pipeline\\{closure}", "class": "Illuminate\\Pipeline\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php", "line": 46, "function": "Illuminate\\Routing\\{closure}", "class": "Illuminate\\Routing\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 149, "function": "handle", "class": "Illuminate\\Foundation\\Http\\Middleware\\CheckForMaintenanceMode", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} }, {} ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php", "line": 53, "function": "Illuminate\\Pipeline\\{closure}", "class": "Illuminate\\Pipeline\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php", "line": 102, "function": "Illuminate\\Routing\\{closure}", "class": "Illuminate\\Routing\\Pipeline", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php", "line": 151, "function": "then", "class": "Illuminate\\Pipeline\\Pipeline", "type": "->", "args": [ {} ] }
{ "file": "/var/www/sauce-builds-provider/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php", "line": 116, "function": "sendRequestThroughRouter", "class": "Illuminate\\Foundation\\Http\\Kernel", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
{ "file": "/var/www/sauce-builds-provider/public/index.php", "line": 53, "function": "handle", "class": "Illuminate\\Foundation\\Http\\Kernel", "type": "->", "args": [ { "attributes": {}, "request": {}, "query": {}, "server": {}, "files": {}, "cookies": {}, "headers": {} } ] }
0 likes
7 replies
AndrewMack's avatar
AndrewMack
OP
Best Answer
Level 3

Sorry - I solved my problem. I needed to create the personal access client. All is well!

php artisan passport:client --personal

If you spent time reading this post, hoping to help ... I am truly sorry. I hope I did not waste too much of your time.

12 likes
joaozitopolo's avatar

@AndrewMack No, you saved my day! I had the same problem with laravel 5.5... the previous version doesn't require that step.

3jfernando's avatar

Hola,

Amigos esto: php artisan passport:client --personal

me soluciono el problema para la parte de hacer registro de usuarios, pero para el login no me funciona; me sale esto:

{ "error": "Unauthorised" }

Este es mi codigo:

public $successStatus = 200;

//crear la function login para que las rutas que utilizan el middleware
//puedan ser utlizadas solo si hay un usuario con una sesion

public function login()
{
    
    if(Auth::attempt(['email' => request('email'), 'password' =>    request('password')])) { 
        
        $user = Auth::user(); 
        $success['token'] =  $user->createToken('MyApp')-> accessToken; 
        
        return response()->json(['success' => $success], $this-> successStatus); 

    } else { 
        return response()->json(['error'=>'Unauthorised'], 401); 
    } 

}

Please or to participate in this conversation.