Cms: Server error in users index after creating user

Created on 17 Dec 2020  路  12Comments  路  Source: statamic/cms

Bug Description

After creating a user, when returning to the index the following error occurs:

[2020-12-17 14:44:18] production.ERROR: Call to a member function url() on null {"userId":"f3cfccc2-ec08-4767-9174-2c2daebe49c8","exception":"[object] (Error(code: 0): Call to a member function url() on null at /home/forge/.../releases/20201210-092452/vendor/statamic/cms/src/Auth/HasAvatar.php:46)
[stacktrace]
#0 /home/forge/.../releases/20201210-092452/vendor/statamic/cms/src/Auth/HasAvatar.php(17): Statamic\\Auth\\User->avatarFieldUrl()
#1 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php(23): Statamic\\Auth\\User->avatar()
#2 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Http/Resources/DelegatesToResource.php(148): Illuminate\\Http\\Resources\\Json\\JsonResource->forwardCallTo()
#3 /home/forge/.../releases/20201210-092452/vendor/statamic/cms/src/Http/Resources/CP/Users/ListedUser.php(36): Illuminate\\Http\\Resources\\Json\\JsonResource->__call()
#4 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/JsonResource.php(95): Statamic\\Http\\Resources\\CP\\Users\\ListedUser->toArray()
#5 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/JsonResource.php(231): Illuminate\\Http\\Resources\\Json\\JsonResource->resolve()
#6 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(800): Illuminate\\Http\\Resources\\Json\\JsonResource->jsonSerialize()
#7 [internal function]: Illuminate\\Support\\Collection->Illuminate\\Support\\Traits\\{closure}()
#8 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Collections/Traits/EnumeratesValues.php(808): array_map()
#9 [internal function]: Illuminate\\Support\\Collection->jsonSerialize()
#10 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Http/JsonResponse.php(71): json_encode()
#11 /home/forge/.../releases/20201210-092452/vendor/symfony/http-foundation/JsonResponse.php(50): Illuminate\\Http\\JsonResponse->setData()
#12 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Http/JsonResponse.php(31): Symfony\\Component\\HttpFoundation\\JsonResponse->__construct()
#13 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Routing/ResponseFactory.php(99): Illuminate\\Http\\JsonResponse->__construct()
#14 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/PaginatedResourceResponse.php(26): Illuminate\\Routing\\ResponseFactory->json()
#15 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceCollection.php(132): Illuminate\\Http\\Resources\\Json\\PaginatedResourceResponse->toResponse()
#16 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Http/Resources/Json/ResourceCollection.php(112): Illuminate\\Http\\Resources\\Json\\ResourceCollection->preparePaginatedResponse()
#17 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Routing/Router.php(765): Illuminate\\Http\\Resources\\Json\\ResourceCollection->toResponse()
#18 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Routing/Router.php(752): Illuminate\\Routing\\Router::toResponse()
#19 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Routing/Router.php(692): Illuminate\\Routing\\Router->prepareResponse()
#20 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Routing\\Router->Illuminate\\Routing\\{closure}()
#21 /home/forge/.../releases/20201210-092452/vendor/statamic/cms/src/Http/Middleware/CP/CountUsers.php(18): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#22 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Statamic\\Http\\Middleware\\CP\\CountUsers->handle()
#23 /home/forge/.../releases/20201210-092452/vendor/statamic/cms/src/Http/Middleware/CP/Localize.php(16): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#24 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Statamic\\Http\\Middleware\\CP\\Localize->handle()
#25 /home/forge/.../releases/20201210-092452/vendor/statamic/cms/src/Http/Middleware/CP/Authorize.php(25): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#26 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Statamic\\Http\\Middleware\\CP\\Authorize->handle()
#27 /home/forge/.../releases/20201210-092452/vendor/statamic/cms/src/Http/Middleware/CP/ContactOutpost.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#28 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Statamic\\Http\\Middleware\\CP\\ContactOutpost->handle()
#29 /home/forge/.../releases/20201210-092452/vendor/statamic/cms/src/Http/Middleware/CP/ControlPanel.php(16): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#30 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Statamic\\Http\\Middleware\\CP\\ControlPanel->handle()
#31 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#32 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Routing\\Middleware\\SubstituteBindings->handle()
#33 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(77): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#34 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle()
#35 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#36 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle()
#37 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#38 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(63): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
#39 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Session\\Middleware\\StartSession->handle()
#40 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#41 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
#42 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#43 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle()
#44 /home/forge/.../releases/20201210-092452/vendor/statamic/cms/src/Http/Middleware/SwapExceptionHandler.php(19): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#45 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Statamic\\Http\\Middleware\\SwapExceptionHandler->handle()
#46 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#47 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Routing/Router.php(694): Illuminate\\Pipeline\\Pipeline->then()
#48 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Routing/Router.php(669): Illuminate\\Routing\\Router->runRouteWithinStack()
#49 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Routing/Router.php(635): Illuminate\\Routing\\Router->runRoute()
#50 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Routing/Router.php(624): Illuminate\\Routing\\Router->dispatchToRoute()
#51 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(166): Illuminate\\Routing\\Router->dispatch()
#52 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(128): Illuminate\\Foundation\\Http\\Kernel->Illuminate\\Foundation\\Http\\{closure}()
#53 /home/forge/.../releases/20201210-092452/vendor/statamic/cms/src/Http/Middleware/CheckMultisite.php(14): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#54 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Statamic\\Http\\Middleware\\CheckMultisite->handle()
#55 /home/forge/.../releases/20201210-092452/vendor/statamic/cms/src/Http/Middleware/PoweredByHeader.php(19): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#56 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Statamic\\Http\\Middleware\\PoweredByHeader->handle()
#57 /home/forge/.../releases/20201210-092452/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php(60): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#58 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Barryvdh\\Debugbar\\Middleware\\InjectDebugbar->handle()
#59 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#60 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#61 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#62 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\TransformsRequest->handle()
#63 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#64 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\ValidatePostSize->handle()
#65 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php(87): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#66 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\PreventRequestsDuringMaintenance->handle()
#67 /home/forge/.../releases/20201210-092452/vendor/fruitcake/laravel-cors/src/HandleCors.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#68 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fruitcake\\Cors\\HandleCors->handle()
#69 /home/forge/.../releases/20201210-092452/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#70 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Fideloper\\Proxy\\TrustProxies->handle()
#71 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#72 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(141): Illuminate\\Pipeline\\Pipeline->then()
#73 /home/forge/.../releases/20201210-092452/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\\Foundation\\Http\\Kernel->sendRequestThroughRouter()
#74 /home/forge/.../releases/20201210-092452/public/index.php(52): Illuminate\\Foundation\\Http\\Kernel->handle()
#75 {main}
"}

This is solved after running php please stache:clear

Statamic 3.0.34 Pro
Laravel 8.18.1
PHP 7.4.13

bug

All 12 comments

Are you using a custom assets field for your avatar? Also, are you using the initials avatar or the Gravatar ones?

Ya I saw this recently as well, didn't have time to track it down. Also solved w/ a cache clear. In my case we haven't done anything w/ the default User blueprint, it's stock.

I seem to be unable to reproduce this error locally. I've tried a couple of different variables: super user/non super user, stache watcher both true and false and the avatar being both initials and from gravatar.

Every time it seems to be working fine. Is there any more information you can provide about when the issue crops up?

Nothing changed about users. default blueprint.

It doesn't happen locally, only on our production server.

Nothing changed about users. default blueprint.

It doesn't happen locally, only on our production server.

That's weird. I'll retry tonight on a Forge server to see if I can re-create there.

Just attempted to re-create on one of my Forge Statamic sites that's running 3.0.34 but same, can't recreate. Very strange. I wonder why it's not happening for me. 馃

I have the stache file watcher turned off in production, that could be a setting that causes it?

I just ran into this on a freshly installed site on Laravel Forge + DigitalOcean.

Uploaded an avatar, saved, now the CP won't load.

I can confirm this bug.

It just happened for me in production. (Half caching, watcher turned off).

  1. Create a new user
  2. Login in as this user
  3. Getting a 500 error
  4. Clearing the cache
  5. Working as expected

Fun one!

In Laravel 8, the collection's has method changed. Before 8, has would return false if the value was null. In Laravel 8, it's true.

What was happening was if you saved a user through the cp, it's data would would have 'avatar' => null, it thought that was enough to think there was an avatar, and try to get the url from nothing.

Ah ya, making it like the request method. I got bitten by that a while back. has means "is there a proper defined" NOT "does that property have a value".

That was a quick fix. Thanks!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

filipac picture filipac  路  4Comments

philippgrimm picture philippgrimm  路  3Comments

aerni picture aerni  路  3Comments

dakisan picture dakisan  路  4Comments

mattrothenberg picture mattrothenberg  路  3Comments