Whoops, looks like something went wrong.

(1/2) Doctrine\DBAL\Exception\DriverException

An exception occurred in driver: User 'bftautomationcom' has exceeded the 'max_user_connections' resource (current value: 20)

in /srv/www/bftautomationcom/www/releases/1/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php line 128
            case '1566':
                return new NotNullConstraintViolationException($message, $exception);
        }

        return new DriverException($message, $exception);
    }

    /**
     * {@inheritdoc}
at Doctrine\DBAL\Driver\AbstractMySQLDriver->convertException()
in /srv/www/bftautomationcom/www/releases/1/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php line 182
            return $driverEx;
        }

        if ($driver instanceof ExceptionConverterDriver && $driverEx instanceof DeprecatedDriverException) {
            return $driver->convertException($msg, $driverEx);
        }

        return new Exception($msg, 0, $driverEx);
    }
at Doctrine\DBAL\DBALException::wrapException()
in /srv/www/bftautomationcom/www/releases/1/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php line 169
     * @return Exception
     */
    public static function driverException(Driver $driver, Throwable $driverEx)
    {
        return self::wrapException($driver, $driverEx, 'An exception occurred in driver: ' . $driverEx->getMessage());
    }

    /**
     * @return Exception
at Doctrine\DBAL\DBALException::driverException()
in /srv/www/bftautomationcom/www/releases/1/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/Driver.php line 19
    {
        try {
            return new Connection($params, (string) $username, (string) $password, $driverOptions);
        } catch (MysqliException $e) {
            throw Exception::driverException($this, $e);
        }
    }

    /**
at Doctrine\DBAL\Driver\Mysqli\Driver->connect()
in /srv/www/bftautomationcom/www/releases/1/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php line 412
        $driverOptions = $this->params['driverOptions'] ?? [];
        $user          = $this->params['user'] ?? null;
        $password      = $this->params['password'] ?? null;

        $this->_conn = $this->_driver->connect($this->params, $user, $password, $driverOptions);

        $this->transactionNestingLevel = 0;

        if ($this->autoCommit === false) {
at Doctrine\DBAL\Connection->connect()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Database/Connection.php line 101
     */
    public function connect(): bool
    {
        // Early return if the connection is already open and custom setup has been done.
        if (!parent::connect()) {
            return false;
        }

        foreach ($this->prepareConnectionCommands as $command) {
at TYPO3\CMS\Core\Database\Connection->connect()
in /srv/www/bftautomationcom/www/releases/1/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php line 475

        // If not connected, we need to connect now to determine the platform version.
        if ($this->_conn === null) {
            try {
                $this->connect();
            } catch (Throwable $originalException) {
                if (empty($this->params['dbname'])) {
                    throw $originalException;
                }
at Doctrine\DBAL\Connection->getDatabasePlatformVersion()
in /srv/www/bftautomationcom/www/releases/1/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php line 437
     * @throws Exception If an invalid platform was specified for this connection.
     */
    private function detectDatabasePlatform(): AbstractPlatform
    {
        $version = $this->getDatabasePlatformVersion();

        if ($version !== null) {
            assert($this->_driver instanceof VersionAwarePlatformDriver);

at Doctrine\DBAL\Connection->detectDatabasePlatform()
in /srv/www/bftautomationcom/www/releases/1/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php line 379
     */
    public function getDatabasePlatform()
    {
        if ($this->platform === null) {
            $this->platform = $this->detectDatabasePlatform();
            $this->platform->setEventManager($this->_eventManager);
        }

        return $this->platform;
at Doctrine\DBAL\Connection->getDatabasePlatform()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Database/ConnectionPool.php line 199
        }

        // Register all custom data types in the type mapping
        foreach ($this->customDoctrineTypes as $type => $className) {
            $conn->getDatabasePlatform()->registerDoctrineTypeMapping($type, $type);
        }

        // Handler for building custom data type column definitions
        // in the SchemaManager
at TYPO3\CMS\Core\Database\ConnectionPool->getDatabaseConnection()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Database/ConnectionPool.php line 149
                1459422968
            );
        }

        static::$connections[$connectionName] = $this->getDatabaseConnection($connectionParams);

        return static::$connections[$connectionName];
    }

at TYPO3\CMS\Core\Database\ConnectionPool->getConnectionByName()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Database/ConnectionPool.php line 103
        if (!empty($GLOBALS['TYPO3_CONF_VARS']['DB']['TableMapping'][$tableName])) {
            $connectionName = (string)$GLOBALS['TYPO3_CONF_VARS']['DB']['TableMapping'][$tableName];
        }

        return $this->getConnectionByName($connectionName);
    }

    /**
     * Creates a connection object based on the specified identifier.
at TYPO3\CMS\Core\Database\ConnectionPool->getConnectionForTable()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Database/ConnectionPool.php line 241
                1459423448
            );
        }

        return $this->getConnectionForTable($tableName)->createQueryBuilder();
    }

    /**
     * Returns an array containing the names of all currently configured connections.
at TYPO3\CMS\Core\Database\ConnectionPool->getQueryBuilderForTable()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Authentication/AbstractUserAuthentication.php line 1383
     * @internal
     */
    public function getAuthInfoArray()
    {
        $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable($this->user_table);
        $expressionBuilder = $queryBuilder->expr();
        $authInfo = [];
        $authInfo['loginType'] = $this->loginType;
        $authInfo['refInfo'] = parse_url(GeneralUtility::getIndpEnv('HTTP_REFERER'));
at TYPO3\CMS\Core\Authentication\AbstractUserAuthentication->getAuthInfoArray()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Authentication/AbstractUserAuthentication.php line 573
        // Indicates if an active authentication failed (not auto login)
        $this->loginFailure = false;
        $this->logger->debug('Login type: ' . $this->loginType);
        // The info array provide additional information for auth services
        $authInfo = $this->getAuthInfoArray();
        // Get Login/Logout data submitted by a form or params
        $loginData = $this->getLoginFormData();
        $this->logger->debug('Login data', $this->removeSensitiveLoginDataForLoggingInfo($loginData));
        // Active logout (eg. with "logout" button)
at TYPO3\CMS\Core\Authentication\AbstractUserAuthentication->checkAuthentication()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Authentication/AbstractUserAuthentication.php line 373
        // Set all possible headers that could ensure that the script is not cached on the client-side
        $this->sendHttpHeaders();
        // Load user session, check to see if anyone has submitted login-information and if so authenticate
        // the user with the session. $this->user[uid] may be used to write log...
        $this->checkAuthentication();
        // Set cookie if generally enabled or if the current session is a non-session cookie (FE permalogin)
        if (!$this->dontSetCookie || $this->isRefreshTimeBasedCookie()) {
            $this->setSessionCookie();
        }
at TYPO3\CMS\Core\Authentication\AbstractUserAuthentication->start()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/frontend/Classes/Middleware/FrontendUserAuthenticator.php line 76
            $request = $this->transferFrontendUserSession($frontendUser, $request, $frontendSessionKey);
        }

        // Authenticate now
        $frontendUser->start();
        $frontendUser->unpack_uc();

        // Register the frontend user as aspect and within the session
        $this->setFrontendUserAspect($frontendUser);
at TYPO3\CMS\Frontend\Middleware\FrontendUserAuthenticator->process()
in /srv/www/bftautomationcom/www/releases/1/web/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/srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$56e->handle()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/frontend/Classes/Middleware/BackendUserAuthenticator.php line 66
            Bootstrap::loadExtTables();
            $this->setBackendUserAspect($GLOBALS['BE_USER']);
        }

        $response = $handler->handle($request);

        // If, when building the response, the user is still available, then ensure that the headers are sent properly
        if ($this->context->getAspect('backend.user')->isLoggedIn()) {
            return $this->applyHeadersToResponse($response);
at TYPO3\CMS\Frontend\Middleware\BackendUserAuthenticator->process()
in /srv/www/bftautomationcom/www/releases/1/web/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/srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$56e->handle()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/frontend/Classes/Middleware/MaintenanceMode.php line 55
        ) {
            return GeneralUtility::makeInstance(ErrorController::class)->unavailableAction($request, 'This page is temporarily unavailable.');
        }
        // Continue the regular stack if no maintenance mode is active
        return $handler->handle($request);
    }
}
at TYPO3\CMS\Frontend\Middleware\MaintenanceMode->process()
in /srv/www/bftautomationcom/www/releases/1/web/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/srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$56e->handle()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/frontend/Classes/Middleware/SiteResolver.php line 65
        $request = $request->withAttribute('routing', $routeResult);
        if ($routeResult->getLanguage() instanceof SiteLanguage) {
            Locales::setSystemLocaleFromSiteLanguage($routeResult->getLanguage());
        }
        return $handler->handle($request);
    }
}
at TYPO3\CMS\Frontend\Middleware\SiteResolver->process()
in /srv/www/bftautomationcom/www/releases/1/web/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/srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$56e->handle()
in /srv/www/bftautomationcom/www/releases/1/web/typo3conf/ext/solr/Classes/Middleware/SolrRoutingMiddleware.php line 103
     */
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
    {
        if (!$request->hasHeader(PageIndexerRequest::SOLR_INDEX_HEADER)) {
            return $handler->handle($request);
        }

        /* @var SiteRouteResult $routeResult */
        $routeResult = $this->getRoutingService()
at ApacheSolrForTypo3\Solr\Middleware\SolrRoutingMiddleware->process()
in /srv/www/bftautomationcom/www/releases/1/web/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/srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$56e->handle()
in /srv/www/bftautomationcom/www/releases/1/packages/t3palcore/Classes/Extension/Solr/Middleware/SolrParam.php line 32

            $request = $request->withQueryParams($queryParams);
        }

        return $handler->handle($request);
    }
}
at Pallino\T3palcore\Extension\Solr\Middleware\SolrParam->process()
in /srv/www/bftautomationcom/www/releases/1/web/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/srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$56e->handle()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/frontend/Classes/Middleware/EidHandler.php line 64
    {
        $eID = $request->getParsedBody()['eID'] ?? $request->getQueryParams()['eID'] ?? null;

        if ($eID === null) {
            return $handler->handle($request);
        }

        // Remove any output produced until now
        ob_clean();
at TYPO3\CMS\Frontend\Middleware\EidHandler->process()
in /srv/www/bftautomationcom/www/releases/1/web/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/srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$56e->handle()
in /srv/www/bftautomationcom/www/releases/1/web/typo3conf/ext/fal_securedownload/Classes/Middleware/EidFrontendAuthentication.php line 40
    {
        $eID = $request->getParsedBody()['eID'] ?? $request->getQueryParams()['eID'] ?? null;

        if ($eID === null || !in_array($eID, ['dumpFile', 'FalSecuredownloadFileTreeState'])) {
            return $handler->handle($request);
        }
        $frontendUser = GeneralUtility::makeInstance(FrontendUserAuthentication::class);

        // List of page IDs where to look for frontend user records
at BeechIt\FalSecuredownload\Middleware\EidFrontendAuthentication->process()
in /srv/www/bftautomationcom/www/releases/1/web/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/srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$56e->handle()
in /srv/www/bftautomationcom/www/releases/1/web/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 /srv/www/bftautomationcom/www/releases/1/web/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/srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$56e->handle()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/frontend/Classes/Middleware/TimeTrackerInitialization.php line 58
        $this->timeTracker->setEnabled($timeTrackingEnabled);
        $this->timeTracker->start(microtime(true));
        $this->timeTracker->push('');

        $response = $handler->handle($request);

        // Finish time tracking
        $this->timeTracker->pull();
        $this->timeTracker->finish();
at TYPO3\CMS\Frontend\Middleware\TimeTrackerInitialization->process()
in /srv/www/bftautomationcom/www/releases/1/web/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/srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$56e->handle()
in /srv/www/bftautomationcom/www/releases/1/web/typo3conf/ext/staticfilecache/Classes/Middleware/FallbackMiddleware.php line 46
            }
        } catch (\Exception $exception) {
            // Not handled
        }
        return $handler->handle($request);
    }

    /**
     * Handle the fallback
at SFC\Staticfilecache\Middleware\FallbackMiddleware->process()
in /srv/www/bftautomationcom/www/releases/1/web/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/srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$56e->handle()
in /srv/www/bftautomationcom/www/releases/1/web/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 /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/AbstractApplication.php line 85
     * @return ResponseInterface
     */
    protected 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 /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/frontend/Classes/Http/Application.php line 69
        // Create new request object having applicationType "I am a frontend request" attribute.
        $request = $request->withAttribute('applicationType', SystemEnvironmentBuilder::REQUESTTYPE_FE);

        $this->initializeContext();
        return parent::handle($request);
    }

    /**
     * Check if LocalConfiguration.php and PackageStates.php exist
at TYPO3\CMS\Frontend\Http\Application->handle()
in /srv/www/bftautomationcom/www/releases/1/web/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 /srv/www/bftautomationcom/www/releases/1/web/index.php line 25
// Set up the application for the frontend
call_user_func(function () {
    $classLoader = require dirname(__DIR__).'/vendor/autoload.php';
    \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::run(0, \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::REQUESTTYPE_FE);
    \TYPO3\CMS\Core\Core\Bootstrap::init($classLoader)->get(\TYPO3\CMS\Frontend\Http\Application::class)->run();
});
at {closure}()
in /srv/www/bftautomationcom/www/releases/1/web/index.php line 26
call_user_func(function () {
    $classLoader = require dirname(__DIR__).'/vendor/autoload.php';
    \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::run(0, \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::REQUESTTYPE_FE);
    \TYPO3\CMS\Core\Core\Bootstrap::init($classLoader)->get(\TYPO3\CMS\Frontend\Http\Application::class)->run();
});

(2/2) Doctrine\DBAL\Driver\Mysqli\Exception\ConnectionFailed

User 'bftautomationcom' has exceeded the 'max_user_connections' resource (current value: 20)

in /srv/www/bftautomationcom/www/releases/1/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/Exception/ConnectionFailed.php line 26
    {
        $error = $connection->connect_error;
        assert($error !== null);

        return new self($error, 'HY000', $connection->connect_errno);
    }

    public static function upcast(mysqli_sql_exception $exception): self
    {
at Doctrine\DBAL\Driver\Mysqli\Exception\ConnectionFailed::new()
in /srv/www/bftautomationcom/www/releases/1/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliConnection.php line 89
            throw ConnectionFailed::upcast($e);
        }

        if (! $success) {
            throw ConnectionFailed::new($this->conn);
        }

        if (! isset($params['charset'])) {
            return;
at Doctrine\DBAL\Driver\Mysqli\MysqliConnection->__construct()
in /srv/www/bftautomationcom/www/releases/1/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/Driver.php line 17
     */
    public function connect(array $params, $username = null, $password = null, array $driverOptions = [])
    {
        try {
            return new Connection($params, (string) $username, (string) $password, $driverOptions);
        } catch (MysqliException $e) {
            throw Exception::driverException($this, $e);
        }
    }
at Doctrine\DBAL\Driver\Mysqli\Driver->connect()
in /srv/www/bftautomationcom/www/releases/1/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php line 412
        $driverOptions = $this->params['driverOptions'] ?? [];
        $user          = $this->params['user'] ?? null;
        $password      = $this->params['password'] ?? null;

        $this->_conn = $this->_driver->connect($this->params, $user, $password, $driverOptions);

        $this->transactionNestingLevel = 0;

        if ($this->autoCommit === false) {
at Doctrine\DBAL\Connection->connect()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Database/Connection.php line 101
     */
    public function connect(): bool
    {
        // Early return if the connection is already open and custom setup has been done.
        if (!parent::connect()) {
            return false;
        }

        foreach ($this->prepareConnectionCommands as $command) {
at TYPO3\CMS\Core\Database\Connection->connect()
in /srv/www/bftautomationcom/www/releases/1/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php line 475

        // If not connected, we need to connect now to determine the platform version.
        if ($this->_conn === null) {
            try {
                $this->connect();
            } catch (Throwable $originalException) {
                if (empty($this->params['dbname'])) {
                    throw $originalException;
                }
at Doctrine\DBAL\Connection->getDatabasePlatformVersion()
in /srv/www/bftautomationcom/www/releases/1/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php line 437
     * @throws Exception If an invalid platform was specified for this connection.
     */
    private function detectDatabasePlatform(): AbstractPlatform
    {
        $version = $this->getDatabasePlatformVersion();

        if ($version !== null) {
            assert($this->_driver instanceof VersionAwarePlatformDriver);

at Doctrine\DBAL\Connection->detectDatabasePlatform()
in /srv/www/bftautomationcom/www/releases/1/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php line 379
     */
    public function getDatabasePlatform()
    {
        if ($this->platform === null) {
            $this->platform = $this->detectDatabasePlatform();
            $this->platform->setEventManager($this->_eventManager);
        }

        return $this->platform;
at Doctrine\DBAL\Connection->getDatabasePlatform()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Database/ConnectionPool.php line 199
        }

        // Register all custom data types in the type mapping
        foreach ($this->customDoctrineTypes as $type => $className) {
            $conn->getDatabasePlatform()->registerDoctrineTypeMapping($type, $type);
        }

        // Handler for building custom data type column definitions
        // in the SchemaManager
at TYPO3\CMS\Core\Database\ConnectionPool->getDatabaseConnection()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Database/ConnectionPool.php line 149
                1459422968
            );
        }

        static::$connections[$connectionName] = $this->getDatabaseConnection($connectionParams);

        return static::$connections[$connectionName];
    }

at TYPO3\CMS\Core\Database\ConnectionPool->getConnectionByName()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Database/ConnectionPool.php line 103
        if (!empty($GLOBALS['TYPO3_CONF_VARS']['DB']['TableMapping'][$tableName])) {
            $connectionName = (string)$GLOBALS['TYPO3_CONF_VARS']['DB']['TableMapping'][$tableName];
        }

        return $this->getConnectionByName($connectionName);
    }

    /**
     * Creates a connection object based on the specified identifier.
at TYPO3\CMS\Core\Database\ConnectionPool->getConnectionForTable()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Database/ConnectionPool.php line 241
                1459423448
            );
        }

        return $this->getConnectionForTable($tableName)->createQueryBuilder();
    }

    /**
     * Returns an array containing the names of all currently configured connections.
at TYPO3\CMS\Core\Database\ConnectionPool->getQueryBuilderForTable()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Authentication/AbstractUserAuthentication.php line 1383
     * @internal
     */
    public function getAuthInfoArray()
    {
        $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable($this->user_table);
        $expressionBuilder = $queryBuilder->expr();
        $authInfo = [];
        $authInfo['loginType'] = $this->loginType;
        $authInfo['refInfo'] = parse_url(GeneralUtility::getIndpEnv('HTTP_REFERER'));
at TYPO3\CMS\Core\Authentication\AbstractUserAuthentication->getAuthInfoArray()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Authentication/AbstractUserAuthentication.php line 573
        // Indicates if an active authentication failed (not auto login)
        $this->loginFailure = false;
        $this->logger->debug('Login type: ' . $this->loginType);
        // The info array provide additional information for auth services
        $authInfo = $this->getAuthInfoArray();
        // Get Login/Logout data submitted by a form or params
        $loginData = $this->getLoginFormData();
        $this->logger->debug('Login data', $this->removeSensitiveLoginDataForLoggingInfo($loginData));
        // Active logout (eg. with "logout" button)
at TYPO3\CMS\Core\Authentication\AbstractUserAuthentication->checkAuthentication()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Authentication/AbstractUserAuthentication.php line 373
        // Set all possible headers that could ensure that the script is not cached on the client-side
        $this->sendHttpHeaders();
        // Load user session, check to see if anyone has submitted login-information and if so authenticate
        // the user with the session. $this->user[uid] may be used to write log...
        $this->checkAuthentication();
        // Set cookie if generally enabled or if the current session is a non-session cookie (FE permalogin)
        if (!$this->dontSetCookie || $this->isRefreshTimeBasedCookie()) {
            $this->setSessionCookie();
        }
at TYPO3\CMS\Core\Authentication\AbstractUserAuthentication->start()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/frontend/Classes/Middleware/FrontendUserAuthenticator.php line 76
            $request = $this->transferFrontendUserSession($frontendUser, $request, $frontendSessionKey);
        }

        // Authenticate now
        $frontendUser->start();
        $frontendUser->unpack_uc();

        // Register the frontend user as aspect and within the session
        $this->setFrontendUserAspect($frontendUser);
at TYPO3\CMS\Frontend\Middleware\FrontendUserAuthenticator->process()
in /srv/www/bftautomationcom/www/releases/1/web/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/srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$56e->handle()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/frontend/Classes/Middleware/BackendUserAuthenticator.php line 66
            Bootstrap::loadExtTables();
            $this->setBackendUserAspect($GLOBALS['BE_USER']);
        }

        $response = $handler->handle($request);

        // If, when building the response, the user is still available, then ensure that the headers are sent properly
        if ($this->context->getAspect('backend.user')->isLoggedIn()) {
            return $this->applyHeadersToResponse($response);
at TYPO3\CMS\Frontend\Middleware\BackendUserAuthenticator->process()
in /srv/www/bftautomationcom/www/releases/1/web/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/srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$56e->handle()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/frontend/Classes/Middleware/MaintenanceMode.php line 55
        ) {
            return GeneralUtility::makeInstance(ErrorController::class)->unavailableAction($request, 'This page is temporarily unavailable.');
        }
        // Continue the regular stack if no maintenance mode is active
        return $handler->handle($request);
    }
}
at TYPO3\CMS\Frontend\Middleware\MaintenanceMode->process()
in /srv/www/bftautomationcom/www/releases/1/web/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/srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$56e->handle()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/frontend/Classes/Middleware/SiteResolver.php line 65
        $request = $request->withAttribute('routing', $routeResult);
        if ($routeResult->getLanguage() instanceof SiteLanguage) {
            Locales::setSystemLocaleFromSiteLanguage($routeResult->getLanguage());
        }
        return $handler->handle($request);
    }
}
at TYPO3\CMS\Frontend\Middleware\SiteResolver->process()
in /srv/www/bftautomationcom/www/releases/1/web/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/srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$56e->handle()
in /srv/www/bftautomationcom/www/releases/1/web/typo3conf/ext/solr/Classes/Middleware/SolrRoutingMiddleware.php line 103
     */
    public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
    {
        if (!$request->hasHeader(PageIndexerRequest::SOLR_INDEX_HEADER)) {
            return $handler->handle($request);
        }

        /* @var SiteRouteResult $routeResult */
        $routeResult = $this->getRoutingService()
at ApacheSolrForTypo3\Solr\Middleware\SolrRoutingMiddleware->process()
in /srv/www/bftautomationcom/www/releases/1/web/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/srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$56e->handle()
in /srv/www/bftautomationcom/www/releases/1/packages/t3palcore/Classes/Extension/Solr/Middleware/SolrParam.php line 32

            $request = $request->withQueryParams($queryParams);
        }

        return $handler->handle($request);
    }
}
at Pallino\T3palcore\Extension\Solr\Middleware\SolrParam->process()
in /srv/www/bftautomationcom/www/releases/1/web/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/srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$56e->handle()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/frontend/Classes/Middleware/EidHandler.php line 64
    {
        $eID = $request->getParsedBody()['eID'] ?? $request->getQueryParams()['eID'] ?? null;

        if ($eID === null) {
            return $handler->handle($request);
        }

        // Remove any output produced until now
        ob_clean();
at TYPO3\CMS\Frontend\Middleware\EidHandler->process()
in /srv/www/bftautomationcom/www/releases/1/web/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/srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$56e->handle()
in /srv/www/bftautomationcom/www/releases/1/web/typo3conf/ext/fal_securedownload/Classes/Middleware/EidFrontendAuthentication.php line 40
    {
        $eID = $request->getParsedBody()['eID'] ?? $request->getQueryParams()['eID'] ?? null;

        if ($eID === null || !in_array($eID, ['dumpFile', 'FalSecuredownloadFileTreeState'])) {
            return $handler->handle($request);
        }
        $frontendUser = GeneralUtility::makeInstance(FrontendUserAuthentication::class);

        // List of page IDs where to look for frontend user records
at BeechIt\FalSecuredownload\Middleware\EidFrontendAuthentication->process()
in /srv/www/bftautomationcom/www/releases/1/web/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/srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$56e->handle()
in /srv/www/bftautomationcom/www/releases/1/web/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 /srv/www/bftautomationcom/www/releases/1/web/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/srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$56e->handle()
in /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/frontend/Classes/Middleware/TimeTrackerInitialization.php line 58
        $this->timeTracker->setEnabled($timeTrackingEnabled);
        $this->timeTracker->start(microtime(true));
        $this->timeTracker->push('');

        $response = $handler->handle($request);

        // Finish time tracking
        $this->timeTracker->pull();
        $this->timeTracker->finish();
at TYPO3\CMS\Frontend\Middleware\TimeTrackerInitialization->process()
in /srv/www/bftautomationcom/www/releases/1/web/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/srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$56e->handle()
in /srv/www/bftautomationcom/www/releases/1/web/typo3conf/ext/staticfilecache/Classes/Middleware/FallbackMiddleware.php line 46
            }
        } catch (\Exception $exception) {
            // Not handled
        }
        return $handler->handle($request);
    }

    /**
     * Handle the fallback
at SFC\Staticfilecache\Middleware\FallbackMiddleware->process()
in /srv/www/bftautomationcom/www/releases/1/web/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/srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/MiddlewareDispatcher.php:138$56e->handle()
in /srv/www/bftautomationcom/www/releases/1/web/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 /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/core/Classes/Http/AbstractApplication.php line 85
     * @return ResponseInterface
     */
    protected 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 /srv/www/bftautomationcom/www/releases/1/web/typo3/sysext/frontend/Classes/Http/Application.php line 69
        // Create new request object having applicationType "I am a frontend request" attribute.
        $request = $request->withAttribute('applicationType', SystemEnvironmentBuilder::REQUESTTYPE_FE);

        $this->initializeContext();
        return parent::handle($request);
    }

    /**
     * Check if LocalConfiguration.php and PackageStates.php exist
at TYPO3\CMS\Frontend\Http\Application->handle()
in /srv/www/bftautomationcom/www/releases/1/web/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 /srv/www/bftautomationcom/www/releases/1/web/index.php line 25
// Set up the application for the frontend
call_user_func(function () {
    $classLoader = require dirname(__DIR__).'/vendor/autoload.php';
    \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::run(0, \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::REQUESTTYPE_FE);
    \TYPO3\CMS\Core\Core\Bootstrap::init($classLoader)->get(\TYPO3\CMS\Frontend\Http\Application::class)->run();
});
at {closure}()
in /srv/www/bftautomationcom/www/releases/1/web/index.php line 26
call_user_func(function () {
    $classLoader = require dirname(__DIR__).'/vendor/autoload.php';
    \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::run(0, \TYPO3\CMS\Core\Core\SystemEnvironmentBuilder::REQUESTTYPE_FE);
    \TYPO3\CMS\Core\Core\Bootstrap::init($classLoader)->get(\TYPO3\CMS\Frontend\Http\Application::class)->run();
});