Deprecated: Return type of Pimple\Container::offsetExists($id) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/shailenm/public_html/vendor/pimple/pimple/src/Pimple/Container.php on line 133

Deprecated: Return type of Pimple\Container::offsetGet($id) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/shailenm/public_html/vendor/pimple/pimple/src/Pimple/Container.php on line 98

Deprecated: Return type of Pimple\Container::offsetSet($id, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/shailenm/public_html/vendor/pimple/pimple/src/Pimple/Container.php on line 79

Deprecated: Return type of Pimple\Container::offsetUnset($id) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/shailenm/public_html/vendor/pimple/pimple/src/Pimple/Container.php on line 143
Crikey! There was an error...
Grav \ Framework \ Session \ Exceptions \ SessionException (500)
Failed to start session: session_start(): Session cannot be started after headers have already been sent Grav\Framework\Session\Exceptions\SessionException thrown with message "Failed to start session: session_start(): Session cannot be started after headers have already been sent" Stacktrace: #7 Grav\Framework\Session\Exceptions\SessionException in /home/shailenm/public_html/system/src/Grav/Framework/Session/Session.php:234 #6 Grav\Framework\Session\Session:start in /home/shailenm/public_html/system/src/Grav/Common/Session.php:47 #5 Grav\Common\Session:init in /home/shailenm/public_html/system/src/Grav/Common/Processors/InitializeProcessor.php:444 #4 Grav\Common\Processors\InitializeProcessor:initializeSession in /home/shailenm/public_html/system/src/Grav/Common/Processors/InitializeProcessor.php:121 #3 Grav\Common\Processors\InitializeProcessor:process in /home/shailenm/public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:50 #2 Grav\Framework\RequestHandler\RequestHandler:handle in /home/shailenm/public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php:62 #1 Grav\Framework\RequestHandler\RequestHandler:handle in /home/shailenm/public_html/system/src/Grav/Common/Grav.php:282 #0 Grav\Common\Grav:process in /home/shailenm/public_html/index.php:58
Stack frames (8)
7
Grav\Framework\Session\Exceptions\SessionException
/system/src/Grav/Framework/Session/Session.php234
6
Grav\Framework\Session\Session start
/system/src/Grav/Common/Session.php47
5
Grav\Common\Session init
/system/src/Grav/Common/Processors/InitializeProcessor.php444
4
Grav\Common\Processors\InitializeProcessor initializeSession
/system/src/Grav/Common/Processors/InitializeProcessor.php121
3
Grav\Common\Processors\InitializeProcessor process
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php50
2
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php62
1
Grav\Framework\RequestHandler\RequestHandler handle
/system/src/Grav/Common/Grav.php282
0
Grav\Common\Grav process
/index.php58
/home/shailenm/public_html/system/src/Grav/Framework/Session/Session.php
  1. if (!$newId || $this->__get('session_destroyed') < time() - 300) {
  2. // Should not happen usually. This could be attack or due to unstable network. Destroy this session.
  3. $this->invalidate();
  4. throw new RuntimeException('Your session was destroyed.', 500);
  5. }
  6. // Not fully expired yet. Could be lost cookie by unstable network. Start session with new session id.
  7. session_write_close();
  8. session_id($newId);
  9. $success = @session_start($options);
  10. if (!$success) {
  11. $last = error_get_last();
  12. $error = $last ? $last['message'] : 'Unknown error';
  13. throw new RuntimeException($error);
  14. }
  15. }
  16. } catch (Exception $e) {
  17. throw new SessionException('Failed to start session: ' . $e->getMessage(), 500);
  18. }
  19. $this->started = true;
  20. $this->onSessionStart();
  21. $user = $this->__get('user');
  22. if ($user && (!$user instanceof UserInterface || (method_exists($user, 'isValid') && !$user->isValid()))) {
  23. $this->invalidate();
  24. throw new SessionException('Invalid User object, session destroyed.', 500);
  25. }
  26. // Extend the lifetime of the session.
  27. if ($sessionExists) {
  28. $params = session_get_cookie_params();
  29. $cookie_options = array (
  30. 'expires' => time() + $params['lifetime'],
  31. 'path' => $params['path'],
  32. 'domain' => $params['domain'],
Arguments
  1. "Failed to start session: session_start(): Session cannot be started after headers have already been sent"
    
/home/shailenm/public_html/system/src/Grav/Common/Session.php
     * @deprecated 1.5 Use ->getInstance() method instead.
     */
    public static function instance()
    {
        user_error(__CLASS__ . '::' . __FUNCTION__ . '() is deprecated since Grav 1.5, use ->getInstance() method instead', E_USER_DEPRECATED);
 
        return static::getInstance();
    }
 
    /**
     * Initialize session.
     *
     * Code in this function has been moved into SessionServiceProvider class.
     *
     * @return void
     */
    public function init()
    {
        if ($this->autoStart && !$this->isStarted()) {
            $this->start();
 
            $this->autoStart = false;
        }
    }
 
    /**
     * @param bool $auto
     * @return $this
     */
    public function setAutoStart($auto)
    {
        $this->autoStart = (bool)$auto;
 
        return $this;
    }
 
    /**
     * Returns attributes.
     *
     * @return array Attributes
/home/shailenm/public_html/system/src/Grav/Common/Processors/InitializeProcessor.php
 
        return null;
    }
 
    /**
     * @param Config $config
     */
    protected function initializeSession(Config $config): void
    {
        // FIXME: Initialize session should happen later after plugins have been loaded. This is a workaround to fix session issues in AWS.
        if (isset($this->container['session']) && $config->get('system.session.initialize', true)) {
            $this->startTimer('_init_session', 'Start Session');
 
            /** @var Session $session */
            $session = $this->container['session'];
 
            try {
                $session->init();
            } catch (SessionException $e) {
                $session->init();
                $message = 'Session corruption detected, restarting session...';
                $this->addMessage($message);
                $this->container['messages']->add($message, 'error');
            }
 
            $this->stopTimer('_init_session');
        }
    }
}
 
/home/shailenm/public_html/system/src/Grav/Common/Processors/InitializeProcessor.php
 
        // Initialize URI.
        $this->initializeUri($config);
 
        // Grav may return redirect response right away.
        if ($config->get('system.pages.redirect_trailing_slash', false)) {
            $response = $this->handleRedirectRequest($request);
            if ($response) {
                $this->stopTimer('_init');
 
                return $response;
            }
        }
 
        // Load accounts (decides class to be used).
        // TODO: remove in 2.0.
        $this->container['accounts'];
 
        // Initialize session.
        $this->initializeSession($config);
 
        $this->stopTimer('_init');
 
        // Wrap call to next handler so that debugger can profile it.
        /** @var Response $response */
        $response = $debugger->profile(static function () use ($handler, $request) {
            return $handler->handle($request);
        });
 
        // Log both request and response and return the response.
        return $debugger->logRequest($request, $response);
    }
 
    public function processCli(): void
    {
        // Load configuration.
        $config = $this->initializeConfig();
 
        // Initialize logger.
        $this->initializeLogger($config);
Arguments
  1. 0 of 0
    Grav\Common\Config\Config {#87}
/home/shailenm/public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
    private $handler;
 
    /** @var ContainerInterface|null */
    private $container;
 
    /**
     * {@inheritdoc}
     * @throws InvalidArgumentException
     */
    public function handle(ServerRequestInterface $request): ResponseInterface
    {
        $middleware = array_shift($this->middleware);
 
        // Use default callable if there is no middleware.
        if ($middleware === null) {
            return call_user_func($this->handler, $request);
        }
 
        if ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, clone $this);
        }
 
        if (null === $this->container || !$this->container->has($middleware)) {
            throw new InvalidArgumentException(
                sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
                $middleware
            );
        }
 
        array_unshift($this->middleware, $this->container->get($middleware));
 
        return $this->handle($request);
    }
}
 
Arguments
  1. 0 of 0
    Nyholm\Psr7\ServerRequest {#64}
  2. 0 of 0
    Grav\Framework\RequestHandler\RequestHandler {#84}
/home/shailenm/public_html/system/src/Grav/Framework/RequestHandler/Traits/RequestHandlerTrait.php
 
        // Use default callable if there is no middleware.
        if ($middleware === null) {
            return call_user_func($this->handler, $request);
        }
 
        if ($middleware instanceof MiddlewareInterface) {
            return $middleware->process($request, clone $this);
        }
 
        if (null === $this->container || !$this->container->has($middleware)) {
            throw new InvalidArgumentException(
                sprintf('The middleware is not a valid %s and is not passed in the Container', MiddlewareInterface::class),
                $middleware
            );
        }
 
        array_unshift($this->middleware, $this->container->get($middleware));
 
        return $this->handle($request);
    }
}
 
Arguments
  1. 0 of 0
    Nyholm\Psr7\ServerRequest {#64}
/home/shailenm/public_html/system/src/Grav/Common/Grav.php
                },
                'pagesProcessor' => function () {
                    return new PagesProcessor($this);
                },
                'debuggerAssetsProcessor' => function () {
                    return new DebuggerAssetsProcessor($this);
                },
                'renderProcessor' => function () {
                    return new RenderProcessor($this);
                },
            ]
        );
 
        $default = static function () {
            return new Response(404, ['Expires' => 0, 'Cache-Control' => 'no-store, max-age=0'], 'Not Found');
        };
 
        $collection = new RequestHandler($this->middleware, $default, $container);
 
        $response = $collection->handle($this['request']);
        $body = $response->getBody();
 
        /** @var Messages $messages */
        $messages = $this['messages'];
 
        // Prevent caching if session messages were displayed in the page.
        $noCache = $messages->isCleared();
        if ($noCache) {
            $response = $response->withHeader('Cache-Control', 'no-store, max-age=0');
        }
 
        // Handle ETag and If-None-Match headers.
        if ($response->getHeaderLine('ETag') === '1') {
            $etag = md5($body);
            $response = $response->withHeader('ETag', '"' . $etag . '"');
 
            $search = trim($this['request']->getHeaderLine('If-None-Match'), '"');
            if ($noCache === false && $search === $etag) {
                $response = $response->withStatus(304);
                $body = '';
Arguments
  1. 0 of 0
    Nyholm\Psr7\ServerRequest {#64}
/home/shailenm/public_html/index.php
if (!is_file($autoload)) {
    die('Please run: <i>bin/grav install</i>');
}
 
// Register the auto-loader.
$loader = require $autoload;
 
use Grav\Common\Grav;
use RocketTheme\Toolbox\Event\Event;
 
// Get the Grav instance
$grav = Grav::instance(
    array(
        'loader' => $loader
    )
);
 
// Process the page
try {
    $grav->process();
} catch (\Error $e) {
    $grav->fireEvent('onFatalException', new Event(array('exception' => $e)));
    throw $e;
} catch (\Exception $e) {
    $grav->fireEvent('onFatalException', new Event(array('exception' => $e)));
    throw $e;
}
 

Environment & details:

empty
empty
empty
empty
empty
Key Value
CONTEXT_DOCUMENT_ROOT
"/home/shailenm/public_html"
CONTEXT_PREFIX
""
DOCUMENT_ROOT
"/home/shailenm/public_html"
GATEWAY_INTERFACE
"CGI/1.1"
H2PUSH
"off"
H2_PUSH
"off"
H2_PUSHED
""
H2_PUSHED_ON
""
H2_STREAM_ID
"1"
H2_STREAM_TAG
"16548-130-1"
HTTP2
"on"
HTTPS
"on"
HTTP_ACCEPT
"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7"
HTTP_ACCEPT_ENCODING
"gzip, deflate, br, zstd"
HTTP_CACHE_CONTROL
"no-cache"
HTTP_HOST
"shailenmishra.domains.swarthmore.edu"
HTTP_PRAGMA
"no-cache"
HTTP_PRIORITY
"u=0, i"
HTTP_SEC_CH_UA
""Chromium";v="130", "HeadlessChrome";v="130", "Not?A_Brand";v="99""
HTTP_SEC_CH_UA_MOBILE
"?0"
HTTP_SEC_CH_UA_PLATFORM
""Windows""
HTTP_SEC_FETCH_DEST
"document"
HTTP_SEC_FETCH_MODE
"navigate"
HTTP_SEC_FETCH_SITE
"none"
HTTP_SEC_FETCH_USER
"?1"
HTTP_UPGRADE_INSECURE_REQUESTS
"1"
HTTP_USER_AGENT
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
HTTP_X_HTTPS
"1"
PATH
"/bin:/usr/bin"
PHP_INI_SCAN_DIR
"/opt/cpanel/ea-php81/root/etc:/opt/cpanel/ea-php81/root/etc/php.d:."
QUERY_STRING
""
REDIRECT_H2PUSH
"off"
REDIRECT_H2_PUSH
"off"
REDIRECT_H2_PUSHED
""
REDIRECT_H2_PUSHED_ON
""
REDIRECT_H2_STREAM_ID
"1"
REDIRECT_H2_STREAM_TAG
"16548-130-1"
REDIRECT_HTTP2
"on"
REDIRECT_HTTPS
"on"
REDIRECT_SCRIPT_URI
"https://shailenmishra.domains.swarthmore.edu/typography"
REDIRECT_SCRIPT_URL
"/typography"
REDIRECT_SSL_TLS_SNI
"shailenmishra.domains.swarthmore.edu"
REDIRECT_STATUS
"200"
REDIRECT_UNIQUE_ID
"aCuG6fDI2twXkMrki7Ng_AAAFxo"
REDIRECT_URL
"/typography"
REMOTE_ADDR
"18.117.77.136"
REMOTE_HOST
"ec2-18-117-77-136.us-east-2.compute.amazonaws.com"
REMOTE_PORT
"18859"
REQUEST_METHOD
"GET"
REQUEST_SCHEME
"https"
REQUEST_URI
"/typography"
SCRIPT_FILENAME
"/home/shailenm/public_html/index.php"
SCRIPT_NAME
"/index.php"
SCRIPT_URI
"https://shailenmishra.domains.swarthmore.edu/typography"
SCRIPT_URL
"/typography"
SERVER_ADDR
"104.236.228.100"
SERVER_ADMIN
"webmaster@shailenmishra.domains.swarthmore.edu"
SERVER_NAME
"shailenmishra.domains.swarthmore.edu"
SERVER_PORT
"443"
SERVER_PROTOCOL
"HTTP/2.0"
SERVER_SIGNATURE
""
SERVER_SOFTWARE
" "
SSL_TLS_SNI
"shailenmishra.domains.swarthmore.edu"
TZ
"UTC"
UNIQUE_ID
"aCuG6fDI2twXkMrki7Ng_AAAFxo"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1747683049.5453
REQUEST_TIME
1747683049
argv
[]
argc
0
empty
0. Whoops\Handler\PrettyPageHandler
1. Whoops\Handler\CallbackHandler