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.
Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.
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": {} } ] }
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.
Please or to participate in this conversation.