Whoops, looks like something went wrong.

(1/1) Error

Typed property TYPO3\CMS\Core\Authentication\AbstractUserAuthentication::$userSession must not be accessed before initialization

in /home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Authentication/AbstractUserAuthentication.php line 1012
     * @return mixed
     */
    public function getSessionData($key)
    {
        return $this->userSession->get($key);
    }

    /**
     * Set session data by key.
at TYPO3\CMS\Core\Authentication\AbstractUserAuthentication->getSessionData()
in /home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Authentication/BackendUserAuthentication.php line 2387
     * @internal should only be used from within TYPO3 Core
     */
    public function getOriginalUserIdWhenInSwitchUserMode(): ?int
    {
        $originalUserId = $this->getSessionData('backuserid');
        return $originalUserId ? (int)$originalUserId : null;
    }
}
at TYPO3\CMS\Core\Authentication\BackendUserAuthentication->getOriginalUserIdWhenInSwitchUserMode()
in /home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Authentication/BackendUserAuthentication.php line 2123
        if (!$userId && !empty($this->user['uid'])) {
            $userId = $this->user['uid'];
        }

        if ($backuserid = $this->getOriginalUserIdWhenInSwitchUserMode()) {
            if (empty($data)) {
                $data = [];
            }
            $data['originalUser'] = $backuserid;
at TYPO3\CMS\Core\Authentication\BackendUserAuthentication->writelog()
in /home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Authentication/BackendUserAuthentication.php line 2029
                'be_users',
                ['workspace_id' => $this->user['workspace_id']],
                ['uid' => (int)$this->user['uid']]
            );
            $this->writelog(SystemLogType::EXTENSION, SystemLogGenericAction::UNDEFINED, SystemLogErrorClassification::MESSAGE, 0, 'User changed workspace to "' . $this->workspace . '"', []);
        }
    }

    /**
at TYPO3\CMS\Core\Authentication\BackendUserAuthentication->setWorkspace()
in /home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Authentication/BackendUserAuthentication.php line 1859
     */
    public function workspaceInit()
    {
        // Initializing workspace by evaluating and setting the workspace, possibly updating it in the user record!
        $this->setWorkspace($this->user['workspace_id']);
        // Limiting the DB mountpoints if there any selected in the workspace record
        $this->initializeDbMountpointsInWorkspace();
        $allowed_languages = (string)($this->getTSConfig()['options.']['workspaces.']['allowed_languages.'][$this->workspace] ?? '');
        if ($allowed_languages !== '') {
at TYPO3\CMS\Core\Authentication\BackendUserAuthentication->workspaceInit()
in /home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Authentication/BackendUserAuthentication.php line 1302
                $validWebMounts = $this->filterValidWebMounts($this->groupData['webmounts']);
                $this->groupData['webmounts'] = implode(',', $validWebMounts);
            }
            // Setting up workspace situation (after webmounts are processed!):
            $this->workspaceInit();
        }
    }

    /**
at TYPO3\CMS\Core\Authentication\BackendUserAuthentication->fetchGroupData()
in /home/ben/src/TYPO3.CMS/typo3/sysext/beuser/Classes/Service/UserInformationService.php line 66
            'uid' => 3016,
            'options' => 3,
            $user->usergroup_column => $groupId
        ];
        $user->fetchGroupData();

        $data = $this->convert($user);
        $data['group'] = $usergroupRecord;

at TYPO3\CMS\Beuser\Service\UserInformationService->getGroupInformation()
in /home/ben/src/TYPO3.CMS/typo3/sysext/beuser/Classes/Controller/BackendUserGroupController.php line 95
        $compareGroupUidList = array_keys($this->getBackendUser()->uc['beuser']['compareGroupUidList'] ?? []);

        $compareData = [];
        foreach ($compareGroupUidList as $uid) {
            if ($compareInformation = $this->userInformationService->getGroupInformation($uid)) {
                $compareData[] = $compareInformation;
            }
        }
        if (empty($compareData)) {
at TYPO3\CMS\Beuser\Controller\BackendUserGroupController->compareAction()
in /home/ben/src/TYPO3.CMS/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php line 569
        }
        $validationResult = $this->arguments->validate();
        if (!$validationResult->hasErrors()) {
            $this->eventDispatcher->dispatch(new BeforeActionCallEvent(static::class, $this->actionMethodName, $preparedArguments));
            $actionResult = $this->{$this->actionMethodName}(...$preparedArguments);
        } else {
            $actionResult = $this->{$this->errorMethodName}();
        }

at TYPO3\CMS\Extbase\Mvc\Controller\ActionController->callActionMethod()
in /home/ben/src/TYPO3.CMS/typo3/sysext/extbase/Classes/Mvc/Controller/ActionController.php line 486
        $this->view = $this->resolveView();
        if ($this->view !== null) {
            $this->initializeView($this->view);
        }
        $response = $this->callActionMethod($request);
        $this->renderAssetsForRequest($request);

        return $response;
    }
at TYPO3\CMS\Extbase\Mvc\Controller\ActionController->processRequest()
in /home/ben/src/TYPO3.CMS/typo3/sysext/extbase/Classes/Mvc/Dispatcher.php line 91
                throw new InfiniteLoopException('Could not ultimately dispatch the request after ' . $dispatchLoopCount . ' iterations. Most probably, a @' . IgnoreValidation::class . ' annotation is missing on re-displaying a form with validation errors.', 1217839467);
            }
            $controller = $this->resolveController($request);
            try {
                $response = $controller->processRequest($request);
                if ($response instanceof ForwardResponse) {
                    $request = static::buildRequestFromCurrentRequestAndForwardResponse($request, $response);
                }
            } catch (StopActionException $ignoredException) {
at TYPO3\CMS\Extbase\Mvc\Dispatcher->dispatch()
in /home/ben/src/TYPO3.CMS/typo3/sysext/extbase/Classes/Mvc/Web/BackendRequestHandler.php line 52
     * @throws InfiniteLoopException
     */
    public function handleRequest(RequestInterface $request)
    {
        return $this->dispatcher->dispatch($request);
    }

    /**
     * This request handler can handle a web request invoked by the backend.
at TYPO3\CMS\Extbase\Mvc\Web\BackendRequestHandler->handleRequest()
in /home/ben/src/TYPO3.CMS/typo3/sysext/extbase/Classes/Core/Bootstrap.php line 238
        $this->initialize($configuration);

        $extbaseRequest = $this->extbaseRequestBuilder->build();
        $requestHandler = $this->requestHandlerResolver->resolveRequestHandler($extbaseRequest);
        $response = $requestHandler->handleRequest($extbaseRequest);

        $this->resetSingletons();
        $this->cacheService->clearCachesOfRegisteredPageIds();
        return $response;
at TYPO3\CMS\Extbase\Core\Bootstrap->handleBackendRequest()
at call_user_func_array()
in /home/ben/src/TYPO3.CMS/typo3/sysext/backend/Classes/Http/RouteDispatcher.php line 63
        }
        $targetIdentifier = $route->getOption('target');
        $target = $this->getCallableFromTarget($targetIdentifier);
        $arguments = [$request];
        return call_user_func_array($target, $arguments);
    }

    /**
     * Wrapper method for static form protection utility
at TYPO3\CMS\Backend\Http\RouteDispatcher->dispatch()
in /home/ben/src/TYPO3.CMS/typo3/sysext/backend/Classes/Http/RequestHandler.php line 94
        // there are Core classes that need the Request object but do not get it handed in
        $this->resetGlobalsToCurrentRequest($request);
        try {
            // Check if the router has the available route and dispatch.
            return $this->dispatcher->dispatch($request);
        } catch (InvalidRequestTokenException $e) {
            // When token was invalid redirect to login
            $loginPage = GeneralUtility::makeInstance(UriBuilder::class)->buildUriFromRoute('login');
            return new RedirectResponse((string)$loginPage);
at TYPO3\CMS\Backend\Http\RequestHandler->handle()
in /home/ben/src/TYPO3.CMS/typo3/sysext/backend/Classes/Middleware/SiteResolver.php line 69
            }
            $site = $this->siteMatcher->matchByPageId($pageId, $rootLine);
            $request = $request->withAttribute('site', $site);
        }
        return $handler->handle($request);
    }
}
at TYPO3\CMS\Backend\Middleware\SiteResolver->process()
in /home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 172

                if (!$middleware instanceof MiddlewareInterface) {
                    throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                }
                return $middleware->process($request, $this->next);
            }
        };
    }
}
at class@anonymous/home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$21e->handle()
in /home/ben/src/TYPO3.CMS/typo3/sysext/backend/Classes/Middleware/AdditionalResponseHeaders.php line 41
     * @return ResponseInterface
     */
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
    {
        $response = $handler->handle($request);
        foreach ($GLOBALS['TYPO3_CONF_VARS']['BE']['HTTP']['Response']['Headers'] ?? [] as $header) {
            [$headerName, $value] = explode(':', $header, 2);
            $response = $response->withAddedHeader($headerName, trim($value));
        }
at TYPO3\CMS\Backend\Middleware\AdditionalResponseHeaders->process()
in /home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 172

                if (!$middleware instanceof MiddlewareInterface) {
                    throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                }
                return $middleware->process($request, $this->next);
            }
        };
    }
}
at class@anonymous/home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$21e->handle()
in /home/ben/src/TYPO3.CMS/typo3/sysext/backend/Classes/Middleware/OutputCompression.php line 47
        ob_clean();
        // Initialize output compression if configured
        $this->initializeOutputCompression();

        return $handler->handle($request);
    }

    /**
     * Initialize output compression if configured
at TYPO3\CMS\Backend\Middleware\OutputCompression->process()
in /home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 172

                if (!$middleware instanceof MiddlewareInterface) {
                    throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                }
                return $middleware->process($request, $this->next);
            }
        };
    }
}
at class@anonymous/home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$21e->handle()
in /home/ben/src/TYPO3.CMS/typo3/sysext/backend/Classes/Middleware/BackendUserAuthenticator.php line 88
            $GLOBALS['BE_USER']->backendCheckLogin($proceedIfNoUserIsLoggedIn);
            $GLOBALS['LANG'] = LanguageService::createFromUserPreferences($GLOBALS['BE_USER']);
            // Re-setting the user and take the workspace from the user object now
            $this->setBackendUserAspect($GLOBALS['BE_USER']);
            $response = $handler->handle($request);

            $this->sessionGarbageCollection();
        } catch (ImmediateResponseException $e) {
            $response = $this->enrichResponseWithHeadersAndCookieInformation(
at TYPO3\CMS\Backend\Middleware\BackendUserAuthenticator->process()
in /home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 172

                if (!$middleware instanceof MiddlewareInterface) {
                    throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                }
                return $middleware->process($request, $this->next);
            }
        };
    }
}
at class@anonymous/home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$21e->handle()
in /home/ben/src/TYPO3.CMS/typo3/sysext/backend/Classes/Middleware/BackendRouteInitialization.php line 82
            $uri = GeneralUtility::makeInstance(UriBuilder::class)->buildUriFromRoute('login');
            return new RedirectResponse($uri);
        }

        return $handler->handle($request);
    }
}
at TYPO3\CMS\Backend\Middleware\BackendRouteInitialization->process()
in /home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 172

                if (!$middleware instanceof MiddlewareInterface) {
                    throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                }
                return $middleware->process($request, $this->next);
            }
        };
    }
}
at class@anonymous/home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$21e->handle()
in /home/ben/src/TYPO3.CMS/typo3/sysext/backend/Classes/Middleware/ForcedHttpsBackendRedirector.php line 55
            [$server, $address] = explode('/', $url, 2);
            return new RedirectResponse('https://' . $server . $sslPortSuffix . '/' . $address);
        }

        return $handler->handle($request);
    }
}
at TYPO3\CMS\Backend\Middleware\ForcedHttpsBackendRedirector->process()
in /home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 172

                if (!$middleware instanceof MiddlewareInterface) {
                    throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                }
                return $middleware->process($request, $this->next);
            }
        };
    }
}
at class@anonymous/home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$21e->handle()
in /home/ben/src/TYPO3.CMS/typo3/sysext/backend/Classes/Middleware/LockedBackendGuard.php line 73
            $request->getAttribute('normalizedParams')->getRemoteAddress(),
            trim((string)$GLOBALS['TYPO3_CONF_VARS']['BE']['IPmaskList'])
        );

        return $handler->handle($request);
    }

    /**
     * Check adminOnly configuration variable and redirects to an URL in file typo3conf/LOCK_BACKEND
at TYPO3\CMS\Backend\Middleware\LockedBackendGuard->process()
in /home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 172

                if (!$middleware instanceof MiddlewareInterface) {
                    throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                }
                return $middleware->process($request, $this->next);
            }
        };
    }
}
at class@anonymous/home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$21e->handle()
in /home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Middleware/NormalizedParamsAttribute.php line 45
     */
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
    {
        $request = $request->withAttribute('normalizedParams', NormalizedParams::createFromRequest($request));
        return $handler->handle($request);
    }
}
at TYPO3\CMS\Core\Middleware\NormalizedParamsAttribute->process()
in /home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 172

                if (!$middleware instanceof MiddlewareInterface) {
                    throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                }
                return $middleware->process($request, $this->next);
            }
        };
    }
}
at class@anonymous/home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$21e->handle()
in /home/ben/src/TYPO3.CMS/typo3conf/ext/sudo_mode/Classes/Middleware/RequestHandlerGuard.php line 63

    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
    {
        try {
            return $handler->handle($request);
        } catch (ConfirmationException $exception) {
            return $this->handleConfirmationException($exception, $request);
        } catch (ServerRequestInstructionException $exception) {
            $request = ServerRequestFactory::fromGlobals();
at FriendsOfTYPO3\SudoMode\Middleware\RequestHandlerGuard->process()
in /home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 172

                if (!$middleware instanceof MiddlewareInterface) {
                    throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                }
                return $middleware->process($request, $this->next);
            }
        };
    }
}
at class@anonymous/home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$21e->handle()
in /home/ben/src/slim-typo3/Classes/Http/SlimMiddleware.php line 162

        $routeInfo = $preprocessedRequest->getAttribute('routeInfo');
        switch ($routeInfo[RouterInterface::DISPATCH_STATUS]) {
        case Dispatcher::NOT_FOUND:
            return $nextHandler->handle($request);
        }

        return $this->doHandle($container, $preprocessedRequest);
    }
at Bnf\SlimTypo3\Http\SlimMiddleware->process()
in /home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 172

                if (!$middleware instanceof MiddlewareInterface) {
                    throw new \InvalidArgumentException(get_class($middleware) . ' does not implement ' . MiddlewareInterface::class, 1516821342);
                }
                return $middleware->process($request, $this->next);
            }
        };
    }
}
at class@anonymous/home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$21e->handle()
in /home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php line 78
     * @return ResponseInterface
     */
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        return $this->tip->handle($request);
    }

    /**
     * Seed the middleware stack with the inner request handler
at TYPO3\CMS\Core\Http\MiddlewareDispatcher->handle()
in /home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Http/AbstractApplication.php line 85
     * @return ResponseInterface
     */
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        return $this->requestHandler->handle($request);
    }

    /**
     * Set up the application and shut it down afterwards
at TYPO3\CMS\Core\Http\AbstractApplication->handle()
in /home/ben/src/TYPO3.CMS/typo3/sysext/backend/Classes/Http/Application.php line 72
        $request = $request->withAttribute('applicationType', $applicationType);

        // Set up the initial context
        $this->initializeContext();
        return parent::handle($request);
    }

    /**
     * Check if LocalConfiguration.php and PackageStates.php exist
at TYPO3\CMS\Backend\Http\Application->handle()
in /home/ben/src/TYPO3.CMS/typo3/sysext/core/Classes/Http/AbstractApplication.php line 97
    final public function run(callable $execute = null)
    {
        try {
            $response = $this->handle(
                ServerRequestFactory::fromGlobals()
            );
            if ($execute !== null) {
                call_user_func($execute);
            }
at TYPO3\CMS\Core\Http\AbstractApplication->run()
in /home/ben/src/TYPO3.CMS/typo3/index.php line 25
// Set up the application for the backend
call_user_func(function () {
    $classLoader = require dirname(__DIR__).'/vendor/autoload.php';
    \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::run(1, \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::REQUESTTYPE_BE);
    \TYPO3\CMS\Core\Core\Bootstrap::init($classLoader)->get(\TYPO3\CMS\Backend\Http\Application::class)->run();
});
at {closure}()
in /home/ben/src/TYPO3.CMS/typo3/index.php line 26
call_user_func(function () {
    $classLoader = require dirname(__DIR__).'/vendor/autoload.php';
    \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::run(1, \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::REQUESTTYPE_BE);
    \TYPO3\CMS\Core\Core\Bootstrap::init($classLoader)->get(\TYPO3\CMS\Backend\Http\Application::class)->run();
});