circles icon indicating copy to clipboard operation
circles copied to clipboard

`OCA\Circles\Model\Circle::getOwner()`: Return value must be of type `OCA\Circles\Model\Member`, null returned

Open solracsf opened this issue 3 years ago • 3 comments

  • NC 22.2.3
  • Users: LDAP

While browsing the users list, it hangs with an error and this exception. It can also be reproduced with occ files:scan --all. Strange thing is, with occ command, user where exception is thrown is not always the same... 🤔

{
  "reqId": "sBsiIFyjmYPBIWyqwSY0",
  "level": 3,
  "time": "2021-11-21T14:21:23+01:00",
  "app": "no app in context",
  "method": "GET",
  "url": "/ocs/v2.php/cloud/users/details?offset=200&limit=25&search=",
  "message": "OCA\\Circles\\Model\\Circle::getOwner(): Return value must be of type OCA\\Circles\\Model\\Member, null returned",
  "userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.45 Safari/537.36",
  "version": "22.2.3.0",
  "exception": {
    "Exception": "Exception",
    "Message": "OCA\\Circles\\Model\\Circle::getOwner(): Return value must be of type OCA\\Circles\\Model\\Member, null returned",
    "Code": 0,
    "Trace": [
      {
        "file": "/app/lib/private/AppFramework/App.php",
        "line": 156,
        "function": "dispatch",
        "class": "OC\\AppFramework\\Http\\Dispatcher",
        "type": "->",
        "args": [
          {
            "__class__": "OCA\\Provisioning_API\\Controller\\UsersController"
          },
          "getUsersDetails"
        ]
      },
      {
        "file": "/app/lib/private/Route/Router.php",
        "line": 302,
        "function": "main",
        "class": "OC\\AppFramework\\App",
        "type": "::",
        "args": [
          "OCA\\Provisioning_API\\Controller\\UsersController",
          "getUsersDetails",
          {
            "__class__": "OC\\AppFramework\\DependencyInjection\\DIContainer"
          },
          {
            "_route": "ocs.provisioning_api.Users.getUsersDetails"
          }
        ]
      },
      {
        "file": "/app/ocs/v1.php",
        "line": 62,
        "function": "match",
        "class": "OC\\Route\\Router",
        "type": "->",
        "args": [
          "/ocsapp/cloud/users/details"
        ]
      },
      {
        "file": "/app/ocs/v2.php",
        "line": 23,
        "args": [
          "/app/ocs/v1.php"
        ],
        "function": "require_once"
      }
    ],
    "File": "/app/lib/private/AppFramework/Http/Dispatcher.php",
    "Line": 158,
    "Previous": {
      "Exception": "TypeError",
      "Message": "OCA\\Circles\\Model\\Circle::getOwner(): Return value must be of type OCA\\Circles\\Model\\Member, null returned",
      "Code": 0,
      "Trace": [
        {
          "file": "/app/apps/circles/lib/Model/FederatedUser.php",
          "line": 369,
          "function": "getOwner",
          "class": "OCA\\Circles\\Model\\Circle",
          "type": "->",
          "args": []
        },
        {
          "file": "/app/apps/circles/lib/Db/CircleRequest.php",
          "line": 287,
          "function": "importFromCircle",
          "class": "OCA\\Circles\\Model\\FederatedUser",
          "type": "->",
          "args": [
            {
              "__class__": "OCA\\Circles\\Model\\Circle"
            }
          ]
        },
        {
          "file": "/app/apps/circles/lib/Service/MembershipService.php",
          "line": 108,
          "function": "getFederatedUserBySingleId",
          "class": "OCA\\Circles\\Db\\CircleRequest",
          "type": "->",
          "args": [
            "hcd37HdgkvWWLpR1ZHGuTqKRMbF2vn8"
          ]
        },
        {
          "file": "/app/apps/circles/lib/Service/FederatedUserService.php",
          "line": 961,
          "function": "onUpdate",
          "class": "OCA\\Circles\\Service\\MembershipService",
          "type": "->",
          "args": [
            "hcd37HdgkvWWLpR1ZHGuTqKRMbF2vn8"
          ]
        },
        {
          "file": "/app/apps/circles/lib/Service/FederatedUserService.php",
          "line": 883,
          "function": "getSingleCircle",
          "class": "OCA\\Circles\\Service\\FederatedUserService",
          "type": "->",
          "args": [
            {
              "__class__": "OCA\\Circles\\Model\\FederatedUser"
            },
            true
          ]
        },
        {
          "file": "/app/apps/circles/lib/Service/FederatedUserService.php",
          "line": 467,
          "function": "fillSingleCircleId",
          "class": "OCA\\Circles\\Service\\FederatedUserService",
          "type": "->",
          "args": [
            {
              "__class__": "OCA\\Circles\\Model\\FederatedUser"
            },
            true
          ]
        },
        {
          "file": "/app/apps/circles/lib/ShareByCircleProvider.php",
          "line": 548,
          "function": "getLocalFederatedUser",
          "class": "OCA\\Circles\\Service\\FederatedUserService",
          "type": "->",
          "args": [
            "[email protected]"
          ]
        },
        {
          "file": "/app/lib/private/Share20/Manager.php",
          "line": 1360,
          "function": "getSharedWith",
          "class": "OCA\\Circles\\ShareByCircleProvider",
          "type": "->",
          "args": [
            "[email protected]",
            7,
            null,
            -1,
            0
          ]
        },
        {
          "file": "/app/apps/files_sharing/lib/MountProvider.php",
          "line": 79,
          "function": "getSharedWith",
          "class": "OC\\Share20\\Manager",
          "type": "->",
          "args": [
            "[email protected]",
            7,
            null,
            -1
          ]
        },
        {
          "file": "/app/lib/private/Files/Config/MountProviderCollection.php",
          "line": 118,
          "function": "getMountsForUser",
          "class": "OCA\\Files_Sharing\\MountProvider",
          "type": "->",
          "args": [
            {
              "__class__": "OC\\User\\User"
            },
            {
              "__class__": "OC\\Files\\Storage\\StorageFactory"
            }
          ]
        },
        {
          "file": "/app/lib/private/Files/Filesystem.php",
          "line": 429,
          "function": "addMountForUser",
          "class": "OC\\Files\\Config\\MountProviderCollection",
          "type": "->",
          "args": [
            {
              "__class__": "OC\\User\\User"
            },
            {
              "__class__": "OC\\Files\\Mount\\Manager"
            }
          ]
        },
        {
          "file": "/app/lib/private/Files/Filesystem.php",
          "line": 354,
          "function": "initMountPoints",
          "class": "OC\\Files\\Filesystem",
          "type": "::",
          "args": [
            "[email protected]"
          ]
        },
        {
          "file": "/app/lib/private/legacy/OC_Util.php",
          "line": 325,
          "function": "init",
          "class": "OC\\Files\\Filesystem",
          "type": "::",
          "args": [
            "[email protected]",
            "/[email protected]/files"
          ]
        },
        {
          "file": "/app/apps/provisioning_api/lib/Controller/AUserData.php",
          "line": 242,
          "function": "setupFS",
          "class": "OC_Util",
          "type": "::",
          "args": [
            "[email protected]"
          ]
        },
        {
          "file": "/app/apps/provisioning_api/lib/Controller/AUserData.php",
          "line": 149,
          "function": "fillStorageInfo",
          "class": "OCA\\Provisioning_API\\Controller\\AUserData",
          "type": "->",
          "args": [
            "[email protected]"
          ]
        },
        {
          "file": "/app/apps/provisioning_api/lib/Controller/UsersController.php",
          "line": 200,
          "function": "getUserData",
          "class": "OCA\\Provisioning_API\\Controller\\AUserData",
          "type": "->",
          "args": [
            "[email protected]"
          ]
        },
        {
          "file": "/app/lib/private/AppFramework/Http/Dispatcher.php",
          "line": 217,
          "function": "getUsersDetails",
          "class": "OCA\\Provisioning_API\\Controller\\UsersController",
          "type": "->",
          "args": [
            "",
            25,
            200
          ]
        },
        {
          "file": "/app/lib/private/AppFramework/Http/Dispatcher.php",
          "line": 126,
          "function": "executeController",
          "class": "OC\\AppFramework\\Http\\Dispatcher",
          "type": "->",
          "args": [
            {
              "__class__": "OCA\\Provisioning_API\\Controller\\UsersController"
            },
            "getUsersDetails"
          ]
        },
        {
          "file": "/app/lib/private/AppFramework/App.php",
          "line": 156,
          "function": "dispatch",
          "class": "OC\\AppFramework\\Http\\Dispatcher",
          "type": "->",
          "args": [
            {
              "__class__": "OCA\\Provisioning_API\\Controller\\UsersController"
            },
            "getUsersDetails"
          ]
        },
        {
          "file": "/app/lib/private/Route/Router.php",
          "line": 302,
          "function": "main",
          "class": "OC\\AppFramework\\App",
          "type": "::",
          "args": [
            "OCA\\Provisioning_API\\Controller\\UsersController",
            "getUsersDetails",
            {
              "__class__": "OC\\AppFramework\\DependencyInjection\\DIContainer"
            },
            {
              "_route": "ocs.provisioning_api.Users.getUsersDetails"
            }
          ]
        },
        {
          "file": "/app/ocs/v1.php",
          "line": 62,
          "function": "match",
          "class": "OC\\Route\\Router",
          "type": "->",
          "args": [
            "/ocsapp/cloud/users/details"
          ]
        },
        {
          "file": "/app/ocs/v2.php",
          "line": 23,
          "args": [
            "/app/ocs/v1.php"
          ],
          "function": "require_once"
        }
      ],
      "File": "/app/apps/circles/lib/Model/Circle.php",
      "Line": 410
    },
    "CustomMessage": "--"
  },
  "id": "619a47e30fc33"
}

solracsf avatar Nov 21 '21 13:11 solracsf

Reproduced also with occ user:list

An unhandled exception has been thrown:
TypeError: OCA\Circles\Model\Circle::getOwner(): Return value must be of type OCA\Circles\Model\Member, null returned in /apps/circles/lib/Model/Circle.php:410

Stack trace:
#0 /apps/circles/lib/Model/FederatedUser.php(369): OCA\Circles\Model\Circle->getOwner()
#1 /apps/circles/lib/Db/CircleRequest.php(287): OCA\Circles\Model\FederatedUser->importFromCircle()
#2 /apps/circles/lib/Service/MembershipService.php(108): OCA\Circles\Db\CircleRequest->getFederatedUserBySingleId()
#3 /apps/circles/lib/Service/FederatedUserService.php(961): OCA\Circles\Service\MembershipService->onUpdate()
#4 /apps/circles/lib/Service/FederatedUserService.php(883): OCA\Circles\Service\FederatedUserService->getSingleCircle()
#5 /apps/circles/lib/Service/FederatedUserService.php(467): OCA\Circles\Service\FederatedUserService->fillSingleCircleId()
#6 /apps/circles/lib/Listeners/DeprecatedListener.php(109): OCA\Circles\Service\FederatedUserService->getLocalFederatedUser()
#7 /apps/circles/lib/AppInfo/Application.php(174): OCA\Circles\Listeners\DeprecatedListener->userAccountUpdated()
#8 /3rdparty/symfony/event-dispatcher/EventDispatcher.php(264): OCA\Circles\AppInfo\Application->OCA\Circles\AppInfo\{closure}()
#9 /3rdparty/symfony/event-dispatcher/EventDispatcher.php(239): Symfony\Component\EventDispatcher\EventDispatcher->doDispatch()
#10 /3rdparty/symfony/event-dispatcher/EventDispatcher.php(73): Symfony\Component\EventDispatcher\EventDispatcher->callListeners()
#11 /lib/private/EventDispatcher/SymfonyAdapter.php(123): Symfony\Component\EventDispatcher\EventDispatcher->dispatch()
#12 /lib/private/Accounts/AccountManager.php(278): OC\EventDispatcher\SymfonyAdapter->dispatch()
#13 /lib/private/Accounts/AccountManager.php(765): OC\Accounts\AccountManager->updateUser()
#14 /lib/private/Accounts/Hooks.php(69): OC\Accounts\AccountManager->updateAccount()
#15 /lib/private/Accounts/Hooks.php(77): OC\Accounts\Hooks->changeUserHook()
#16 /lib/private/EventDispatcher/ServiceEventListener.php(75): OC\Accounts\Hooks->handle()
#17 /3rdparty/symfony/event-dispatcher/EventDispatcher.php(251): OC\EventDispatcher\ServiceEventListener->__invoke()
#18 /3rdparty/symfony/event-dispatcher/EventDispatcher.php(73): Symfony\Component\EventDispatcher\EventDispatcher->callListeners()
#19 /lib/private/EventDispatcher/EventDispatcher.php(88): Symfony\Component\EventDispatcher\EventDispatcher->dispatch()
#20 /lib/private/EventDispatcher/EventDispatcher.php(100): OC\EventDispatcher\EventDispatcher->dispatch()
#21 /lib/private/Server.php(623): OC\EventDispatcher\EventDispatcher->dispatchTyped()
#22 [internal function]: OC\Server->OC\{closure}()
#23 /lib/private/Hooks/EmitterTrait.php(106): call_user_func_array()
#24 /lib/private/Hooks/PublicEmitter.php(40): OC\Hooks\BasicEmitter->emit()
#25 /lib/private/User/User.php(560): OC\Hooks\PublicEmitter->emit()
#26 /apps/user_ldap/lib/User/User.php(400): OC\User\User->triggerChange()
#27 /apps/user_ldap/lib/Access.php(770): OCA\User_LDAP\User\User->composeAndStoreDisplayName()
#28 /apps/user_ldap/lib/Access.php(708): OCA\User_LDAP\Access->cacheUserDisplayName()
#29 /apps/user_ldap/lib/Access.php(655): OCA\User_LDAP\Access->ldap2NextcloudNames()
#30 /apps/user_ldap/lib/User_LDAP.php(284): OCA\User_LDAP\Access->nextcloudUserNames()
#31 /apps/user_ldap/lib/User_Proxy.php(169): OCA\User_LDAP\User_LDAP->getUsers()
#32 /lib/private/User/Manager.php(286): OCA\User_LDAP\User_Proxy->getUsers()
#33 /core/Command/User/ListCommand.php(85): OC\User\Manager->search()
#34 /3rdparty/symfony/console/Command/Command.php(255): OC\Core\Command\User\ListCommand->execute()
#35 /core/Command/Base.php(168): Symfony\Component\Console\Command\Command->run()
#36 /3rdparty/symfony/console/Application.php(1009): OC\Core\Command\Base->run()
#37 /3rdparty/symfony/console/Application.php(273): Symfony\Component\Console\Application->doRunCommand()
#38 /3rdparty/symfony/console/Application.php(149): Symfony\Component\Console\Application->doRun()
#39 /lib/private/Console/Application.php(209): Symfony\Component\Console\Application->run()
#40 /console.php(99): OC\Console\Application->run()
#41 /occ(11): require_once('...')
#42 {main}

solracsf avatar Dec 06 '21 12:12 solracsf

Should be fixed in next minor release of Nextcloud 22,23,24

ArtificialOwl avatar Apr 19 '22 12:04 ArtificialOwl

Same here Nextcloud v.28.0.2 User via DB, not LDAP

{
   "reqId":"ZeA5ILEN9cXq-hsKAm-4SgAAAAI",
   "level":3,
   "time":"2024-02-29T07:58:24+00:00",
   "remoteAddr":"87.139.18.xxx",
   "user":"xxx",
   "app":"no app in context",
   "method":"GET",
   "url":"/ocs/v2.php/cloud/groups/teamw()rk/users/details?offset=0&limit=25&search=",
   "message":"Exception thrown: Exception",
   "userAgent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36",
   "version":"28.0.2.5",
   "exception":{
      "Exception":"Exception",
      "Message":"OCA\\Circles\\Model\\Circle::getInitiator(): Return value must be of type OCA\\Circles\\Model\\Member, null returned in file '/var/www/vhosts/domain.tld/httpdocs/apps/circles/lib/Model/Circle.php' line 593",
      "Code":0,
      "Trace":[
         {
            "file":"/var/www/vhosts/domain.tld/httpdocs/lib/private/AppFramework/App.php",
            "line":184,
            "function":"dispatch",
            "class":"OC\\AppFramework\\Http\\Dispatcher",
            "type":"->"
         },
         {
            "file":"/var/www/vhosts/domain.tld/httpdocs/lib/private/Route/Router.php",
            "line":315,
            "function":"main",
            "class":"OC\\AppFramework\\App",
            "type":"::"
         },
         {
            "file":"/var/www/vhosts/domain.tld/httpdocs/ocs/v1.php",
            "line":65,
            "function":"match",
            "class":"OC\\Route\\Router",
            "type":"->"
         },
         {
            "file":"/var/www/vhosts/domain.tld/httpdocs/ocs/v2.php",
            "line":23,
            "args":[
               "/var/www/vhosts/domain.tld/httpdocs/ocs/v1.php"
            ],
            "function":"require_once"
         }
      ],
      "File":"/var/www/vhosts/domain.tld/httpdocs/lib/private/AppFramework/Http/Dispatcher.php",
      "Line":169,
      "Previous":{
         "Exception":"TypeError",
         "Message":"OCA\\Circles\\Model\\Circle::getInitiator(): Return value must be of type OCA\\Circles\\Model\\Member, null returned",
         "Code":0,
         "Trace":[
            {
               "file":"/var/www/vhosts/domain.tld/httpdocs/apps/collectives/lib/Service/CollectiveHelper.php",
               "line":54,
               "function":"getInitiator",
               "class":"OCA\\Circles\\Model\\Circle",
               "type":"->"
            },
            {
               "file":"/var/www/vhosts/domain.tld/httpdocs/apps/collectives/lib/Mount/MountProvider.php",
               "line":66,
               "function":"getCollectivesForUser",
               "class":"OCA\\Collectives\\Service\\CollectiveHelper",
               "type":"->"
            },
            {
               "file":"/var/www/vhosts/domain.tld/httpdocs/apps/collectives/lib/Mount/MountProvider.php",
               "line":117,
               "function":"getFoldersForUser",
               "class":"OCA\\Collectives\\Mount\\MountProvider",
               "type":"->"
            },
            {
               "file":"/var/www/vhosts/domain.tld/httpdocs/lib/private/Files/Config/MountProviderCollection.php",
               "line":89,
               "function":"getMountsForUser",
               "class":"OCA\\Collectives\\Mount\\MountProvider",
               "type":"->"
            },
            {
               "file":"/var/www/vhosts/domain.tld/httpdocs/lib/private/Files/Config/MountProviderCollection.php",
               "line":138,
               "function":"getMountsFromProvider",
               "class":"OC\\Files\\Config\\MountProviderCollection",
               "type":"->"
            },
            {
               "file":"/var/www/vhosts/domain.tld/httpdocs/lib/private/Files/SetupManager.php",
               "line":215,
               "function":"addMountForUser",
               "class":"OC\\Files\\Config\\MountProviderCollection",
               "type":"->"
            },
            {
               "file":"/var/www/vhosts/domain.tld/httpdocs/lib/private/Files/SetupManager.php",
               "line":318,
               "function":"OC\\Files\\{closure}",
               "class":"OC\\Files\\SetupManager",
               "type":"->",
               "args":[
                  "*** sensitive parameters replaced ***"
               ]
            },
            {
               "file":"/var/www/vhosts/domain.tld/httpdocs/lib/private/Files/SetupManager.php",
               "line":214,
               "function":"setupForUserWith",
               "class":"OC\\Files\\SetupManager",
               "type":"->"
            },
            {
               "file":"/var/www/vhosts/domain.tld/httpdocs/lib/private/legacy/OC_Util.php",
               "line":110,
               "function":"setupForUser",
               "class":"OC\\Files\\SetupManager",
               "type":"->"
            },
            {
               "file":"/var/www/vhosts/domain.tld/httpdocs/apps/provisioning_api/lib/Controller/AUserData.php",
               "line":261,
               "function":"setupFS",
               "class":"OC_Util",
               "type":"::"
            },
            {
               "file":"/var/www/vhosts/domain.tld/httpdocs/apps/provisioning_api/lib/Controller/AUserData.php",
               "line":159,
               "function":"fillStorageInfo",
               "class":"OCA\\Provisioning_API\\Controller\\AUserData",
               "type":"->"
            },
            {
               "file":"/var/www/vhosts/domain.tld/httpdocs/apps/provisioning_api/lib/Controller/GroupsController.php",
               "line":234,
               "function":"getUserData",
               "class":"OCA\\Provisioning_API\\Controller\\AUserData",
               "type":"->"
            },
            {
               "file":"/var/www/vhosts/domain.tld/httpdocs/lib/private/AppFramework/Http/Dispatcher.php",
               "line":230,
               "function":"getGroupUsersDetails",
               "class":"OCA\\Provisioning_API\\Controller\\GroupsController",
               "type":"->"
            },
            {
               "file":"/var/www/vhosts/domain.tld/httpdocs/lib/private/AppFramework/Http/Dispatcher.php",
               "line":137,
               "function":"executeController",
               "class":"OC\\AppFramework\\Http\\Dispatcher",
               "type":"->"
            },
            {
               "file":"/var/www/vhosts/domain.tld/httpdocs/lib/private/AppFramework/App.php",
               "line":184,
               "function":"dispatch",
               "class":"OC\\AppFramework\\Http\\Dispatcher",
               "type":"->"
            },
            {
               "file":"/var/www/vhosts/domain.tld/httpdocs/lib/private/Route/Router.php",
               "line":315,
               "function":"main",
               "class":"OC\\AppFramework\\App",
               "type":"::"
            },
            {
               "file":"/var/www/vhosts/domain.tld/httpdocs/ocs/v1.php",
               "line":65,
               "function":"match",
               "class":"OC\\Route\\Router",
               "type":"->"
            },
            {
               "file":"/var/www/vhosts/domain.tld/httpdocs/ocs/v2.php",
               "line":23,
               "args":[
                  "/var/www/vhosts/domain.tld/httpdocs/ocs/v1.php"
               ],
               "function":"require_once"
            }
         ],
         "File":"/var/www/vhosts/domain.tld/httpdocs/apps/circles/lib/Model/Circle.php",
         "Line":593
      },
      "CustomMessage":"Exception thrown: Exception"
   },
   "id":"65e03d3354d1a"
}

skerbis avatar Feb 29 '24 08:02 skerbis

@skerbis Yours is actually different:

"Message":"OCA\\Circles\\Model\\Circle::getInitiator(): Return value must be of type OCA\\Circles\\Model\\Member, null returned in file '/var/www/vhosts/domain.tld/httpdocs/apps/circles/lib/Model/Circle.php' line 593",

I suggest running occ circles:check and seeing what is reported. Related: #1284

I'm closing this particular issue out.

joshtrichards avatar Jun 13 '24 20:06 joshtrichards