Can't login with admin account "ERROR: Trying to get property 'is_owner' of non-object"

I managed to setup v5.1.65 on Ubuntu 20.04 and everything seemed to be working, logged in a few times with admin/owner account. I added a second user (not an admin), they logged in and created an invoice and did some other things, now I cannot login with my admin/owner account. At login screen I get “500: Server Error”. Tried changing password which didn’t help. Second user is still able to log in.

From /storage/logs/laravel.log
[2021-06-04 15:22:20] production.ERROR: Trying to get property ‘is_owner’ of non-object {“userId”:1,“exception”:"[object] (ErrorException(code: 0): Trying to get property ‘is_owner’ of non-object at /usr/share/nginx/invoiceninja/app/Models/User.php:297)
[stacktrace]
#0 /usr/share/nginx/invoiceninja/app/Models/User.php(297): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError()
#1 /usr/share/nginx/invoiceninja/app/Models/User.php(347): App\Models\User->isOwner()
#2 /usr/share/nginx/invoiceninja/app/Http/Controllers/BaseController.php(476): App\Models\User->hasPermission()
#3 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(629): App\Http\Controllers\BaseController->App\Http\Controllers\{closure}()
#4 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(605): Illuminate\Database\Eloquent\Builder->eagerLoadRelation()
#5 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(573): Illuminate\Database\Eloquent\Builder->eagerLoadRelations()
…snip about 60 more lines.

Hi,

@david, any thoughts?

I see where some problems may have been an incorrect version of something, so here is some version info if it may help:
PHP 7.4.3 (cli) (built: Oct 6 2020 15:47:56) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

nginx version: nginx/1.18.0 (Ubuntu)
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2021-06-04 09:51:53 EDT; 1 day 7h ago
Docs: man:nginx(8)
Process: 67212 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 67224 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Main PID: 67225 (nginx)
Tasks: 2 (limit: 1072)
Memory: 12.8M
CGroup: /system.slice/nginx.service
├─67225 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─67226 nginx: worker process

Laravel Framework 8.40.0

mysql Ver 15.1 Distrib 10.3.29-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Have you made any manual changes to the database?

No, but I can if needed.

I wiped database did setup again. I will wait and see if it happens again.

Still having problems here. I added 2 test users and 2 real users, confirmed both test users and cannot log in with either of them (500 server error). I can still log in myself this time, haven’t confirmed the 2 real users yet.

[2021-06-08 01:08:07] production.ERROR: Trying to get property ‘is_owner’ of non-object {“userId”:3,“exception”:"[object] (ErrorException(code: 0): Trying to get property ‘is_owner’ of non-object at /usr/share/nginx/invoiceninja/app/Models/User.php:297)
[stacktrace]
#0 /usr/share/nginx/invoiceninja/app/Models/User.php(297): Illuminate\Foundation\Bootstrap\HandleExceptions->handleError()
#1 /usr/share/nginx/invoiceninja/app/Models/User.php(347): App\Models\User->isOwner()
#2 /usr/share/nginx/invoiceninja/app/Http/Controllers/BaseController.php(476): App\Models\User->hasPermission()
#3 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(629): App\Http\Controllers\BaseController->App\Http\Controllers\{closure}()
#4 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(605): Illuminate\Database\Eloquent\Builder->eagerLoadRelation()
#5 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(573): Illuminate\Database\Eloquent\Builder->eagerLoadRelations()
#6 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Relation.php(188): Illuminate\Database\Eloquent\Builder->get()
#7 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Relations/Relation.php(153): Illuminate\Database\Eloquent\Relations\Relation->get()
#8 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(636): Illuminate\Database\Eloquent\Relations\Relation->getEager()
#9 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(605): Illuminate\Database\Eloquent\Builder->eagerLoadRelation()
#10 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(573): Illuminate\Database\Eloquent\Builder->eagerLoadRelations()
#11 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php(772): Illuminate\Database\Eloquent\Builder->get()
#12 /usr/share/nginx/invoiceninja/app/Http/Controllers/BaseController.php(615): Illuminate\Database\Eloquent\Builder->paginate()
#13 /usr/share/nginx/invoiceninja/app/Http/Controllers/Auth/LoginController.php(230): App\Http\Controllers\BaseController->timeConstrainedResponse()
#14 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): App\Http\Controllers\Auth\LoginController->apiLogin()
#15 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\Routing\Controller->callAction()
#16 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Route.php(254): Illuminate\Routing\ControllerDispatcher->dispatch()
#17 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Route.php(197): Illuminate\Routing\Route->runController()
#18 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(695): Illuminate\Routing\Route->run()
#19 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Routing\Router->Illuminate\Routing\{closure}()
#20 /usr/share/nginx/invoiceninja/app/Http/Middleware/ApiSecretCheck.php(31): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#21 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\Http\Middleware\ApiSecretCheck->handle()
#22 /usr/share/nginx/invoiceninja/app/Http/Middleware/Cors.php(25): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#23 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\Http\Middleware\Cors->handle()
#24 /usr/share/nginx/invoiceninja/app/Http/Middleware/QueryLogging.php(40): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#25 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\Http\Middleware\QueryLogging->handle()
#26 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(50): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#27 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Routing\Middleware\SubstituteBindings->handle()
#28 /usr/share/nginx/invoiceninja/app/Http/Middleware/SetEmailDb.php(42): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#29 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\Http\Middleware\SetEmailDb->handle()
#30 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(127): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#31 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Middleware/ThrottleRequests.php(63): Illuminate\Routing\Middleware\ThrottleRequests->handleRequest()
#32 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Routing\Middleware\ThrottleRequests->handle()
#33 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#34 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(697): Illuminate\Pipeline\Pipeline->then()
#35 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(672): Illuminate\Routing\Router->runRouteWithinStack()
#36 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(636): Illuminate\Routing\Router->runRoute()
#37 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Routing/Router.php(625): Illuminate\Routing\Router->dispatchToRoute()
#38 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(166): Illuminate\Routing\Router->dispatch()
#39 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}()
#40 /usr/share/nginx/invoiceninja/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestIpMiddleware.php(55): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#41 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Sentry\Laravel\Http\SetRequestIpMiddleware->handle()
#42 /usr/share/nginx/invoiceninja/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Http/SetRequestMiddleware.php(52): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#43 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Sentry\Laravel\Http\SetRequestMiddleware->handle()
#44 /usr/share/nginx/invoiceninja/app/Http/Middleware/Cors.php(25): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#45 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): App\Http\Middleware\Cors->handle()
#46 /usr/share/nginx/invoiceninja/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#47 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\Proxy\TrustProxies->handle()
#48 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#49 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php(31): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#50 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull->handle()
#51 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#52 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php(40): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle()
#53 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\TrimStrings->handle()
#54 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#55 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle()
#56 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(86): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#57 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance->handle()
#58 /usr/share/nginx/invoiceninja/vendor/sentry/sentry-laravel/src/Sentry/Laravel/Tracing/Middleware.php(53): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#59 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Sentry\Laravel\Tracing\Middleware->handle()
#60 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}()
#61 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(141): Illuminate\Pipeline\Pipeline->then()
#62 /usr/share/nginx/invoiceninja/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter()
#63 /usr/share/nginx/invoiceninja/public/index.php(57): Illuminate\Foundation\Http\Kernel->handle()
#64 {main}
"}

So The only way I can get this to work:
1 Create user which sends confirmation email.
2 Confirm and set password. (login will fail with 500 error)
3 Delete user
4 Create user with same name and email.
(I didn’t open confirmation email this time, never tried to confirm a second time,this may not matter)
5 User can log in with password from step 2.

Is this normal???