Whoops \ Exception \ ErrorException (E_NOTICE)
fwrite(): write of 341 bytes failed with errno=28 No space left on device Whoops\Exception\ErrorException thrown with message "fwrite(): write of 341 bytes failed with errno=28 No space left on device" Stacktrace: #12 Whoops\Exception\ErrorException in /home/master/mautibox.ru/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:139 #11 fwrite in /home/master/mautibox.ru/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:139 #10 Monolog\Handler\StreamHandler:streamWrite in /home/master/mautibox.ru/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:125 #9 Monolog\Handler\StreamHandler:write in /home/master/mautibox.ru/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php:39 #8 Monolog\Handler\AbstractProcessingHandler:handle in /home/master/mautibox.ru/vendor/monolog/monolog/src/Monolog/Logger.php:344 #7 Monolog\Logger:addRecord in /home/master/mautibox.ru/vendor/monolog/monolog/src/Monolog/Logger.php:470 #6 Monolog\Logger:addCritical in /home/master/mautibox.ru/system/src/Grav/Common/Errors/Errors.php:73 #5 Grav\Common\Errors\Errors:Grav\Common\Errors\{closure} in /home/master/mautibox.ru/vendor/filp/whoops/src/Whoops/Handler/CallbackHandler.php:50 #4 Whoops\Handler\CallbackHandler:handle in /home/master/mautibox.ru/vendor/filp/whoops/src/Whoops/Run.php:398 #3 Whoops\Run:handleException in /home/master/mautibox.ru/vendor/filp/whoops/src/Whoops/Run.php:482 #2 Whoops\Run:handleError in /home/master/mautibox.ru/system/src/Grav/Common/Debugger.php:847 #1 Grav\Common\Debugger:deprecatedErrorHandler in [internal]:0 #0 session_write_close in [internal]:0
Stack frames (13)
12
Whoops\Exception\ErrorException
/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php139
11
fwrite
/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php139
10
Monolog\Handler\StreamHandler streamWrite
/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php125
9
Monolog\Handler\StreamHandler write
/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php39
8
Monolog\Handler\AbstractProcessingHandler handle
/vendor/monolog/monolog/src/Monolog/Logger.php344
7
Monolog\Logger addRecord
/vendor/monolog/monolog/src/Monolog/Logger.php470
6
Monolog\Logger addCritical
/system/src/Grav/Common/Errors/Errors.php73
5
Grav\Common\Errors\Errors Grav\Common\Errors\{closure}
/vendor/filp/whoops/src/Whoops/Handler/CallbackHandler.php50
4
Whoops\Handler\CallbackHandler handle
/vendor/filp/whoops/src/Whoops/Run.php398
3
Whoops\Run handleException
/vendor/filp/whoops/src/Whoops/Run.php482
2
Whoops\Run handleError
/system/src/Grav/Common/Debugger.php847
1
Grav\Common\Debugger deprecatedErrorHandler
[internal]0
0
session_write_close
[internal]0
/home/master/mautibox.ru/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php
        if ($this->useLocking) {
            // ignoring errors here, there's not much we can do about them
            flock($this->stream, LOCK_EX);
        }
 
        $this->streamWrite($this->stream, $record);
 
        if ($this->useLocking) {
            flock($this->stream, LOCK_UN);
        }
    }
 
    /**
     * Write to stream
     * @param resource $stream
     * @param array $record
     */
    protected function streamWrite($stream, array $record)
    {
        fwrite($stream, (string) $record['formatted']);
    }
 
    protected function streamSetChunkSize()
    {
        if (version_compare(PHP_VERSION, '5.4.0', '>=')) {
            return stream_set_chunk_size($this->stream, self::CHUNK_SIZE);
        }
 
        return false;
    }
 
    private function customErrorHandler($code, $msg)
    {
        $this->errorMessage = preg_replace('{^(fopen|mkdir)\(.*?\): }', '', $msg);
    }
 
    /**
     * @param string $stream
     *
     * @return null|string
Arguments
  1. "fwrite(): write of 341 bytes failed with errno=28 No space left on device"
    
/home/master/mautibox.ru/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php
        if ($this->useLocking) {
            // ignoring errors here, there's not much we can do about them
            flock($this->stream, LOCK_EX);
        }
 
        $this->streamWrite($this->stream, $record);
 
        if ($this->useLocking) {
            flock($this->stream, LOCK_UN);
        }
    }
 
    /**
     * Write to stream
     * @param resource $stream
     * @param array $record
     */
    protected function streamWrite($stream, array $record)
    {
        fwrite($stream, (string) $record['formatted']);
    }
 
    protected function streamSetChunkSize()
    {
        if (version_compare(PHP_VERSION, '5.4.0', '>=')) {
            return stream_set_chunk_size($this->stream, self::CHUNK_SIZE);
        }
 
        return false;
    }
 
    private function customErrorHandler($code, $msg)
    {
        $this->errorMessage = preg_replace('{^(fopen|mkdir)\(.*?\): }', '', $msg);
    }
 
    /**
     * @param string $stream
     *
     * @return null|string
/home/master/mautibox.ru/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php
            set_error_handler(array($this, 'customErrorHandler'));
            $this->stream = fopen($this->url, 'a');
            if ($this->filePermission !== null) {
                @chmod($this->url, $this->filePermission);
            }
            restore_error_handler();
            if (!is_resource($this->stream)) {
                $this->stream = null;
 
                throw new \UnexpectedValueException(sprintf('The stream or file "%s" could not be opened in append mode: '.$this->errorMessage, $this->url));
            }
            $this->streamSetChunkSize();
        }
 
        if ($this->useLocking) {
            // ignoring errors here, there's not much we can do about them
            flock($this->stream, LOCK_EX);
        }
 
        $this->streamWrite($this->stream, $record);
 
        if ($this->useLocking) {
            flock($this->stream, LOCK_UN);
        }
    }
 
    /**
     * Write to stream
     * @param resource $stream
     * @param array $record
     */
    protected function streamWrite($stream, array $record)
    {
        fwrite($stream, (string) $record['formatted']);
    }
 
    protected function streamSetChunkSize()
    {
        if (version_compare(PHP_VERSION, '5.4.0', '>=')) {
            return stream_set_chunk_size($this->stream, self::CHUNK_SIZE);
/home/master/mautibox.ru/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php
 *
 * @author Jordi Boggiano <j.boggiano@seld.be>
 * @author Christophe Coevoet <stof@notk.org>
 */
abstract class AbstractProcessingHandler extends AbstractHandler
{
    /**
     * {@inheritdoc}
     */
    public function handle(array $record)
    {
        if (!$this->isHandling($record)) {
            return false;
        }
 
        $record = $this->processRecord($record);
 
        $record['formatted'] = $this->getFormatter()->format($record);
 
        $this->write($record);
 
        return false === $this->bubble;
    }
 
    /**
     * Writes the record down to the log of the implementing handler
     *
     * @param  array $record
     * @return void
     */
    abstract protected function write(array $record);
 
    /**
     * Processes a record.
     *
     * @param  array $record
     * @return array
     */
    protected function processRecord(array $record)
    {
/home/master/mautibox.ru/vendor/monolog/monolog/src/Monolog/Logger.php
        }
        $ts->setTimezone(static::$timezone);
 
        $record = array(
            'message' => (string) $message,
            'context' => $context,
            'level' => $level,
            'level_name' => $levelName,
            'channel' => $this->name,
            'datetime' => $ts,
            'extra' => array(),
        );
 
        try {
            foreach ($this->processors as $processor) {
                $record = call_user_func($processor, $record);
            }
 
            while ($handler = current($this->handlers)) {
                if (true === $handler->handle($record)) {
                    break;
                }
 
                next($this->handlers);
            }
        } catch (Exception $e) {
            $this->handleException($e, $record);
        }
 
        return true;
    }
 
    /**
     * Ends a log cycle and frees all resources used by handlers.
     *
     * Closing a Handler means flushing all buffers and freeing any open resources/handles.
     * Handlers that have been closed should be able to accept log records again and re-open
     * themselves on demand, but this may not always be possible depending on implementation.
     *
     * This is useful at the end of a request and will be called automatically on every handler
/home/master/mautibox.ru/vendor/monolog/monolog/src/Monolog/Logger.php
     *
     * @param  string $message The log message
     * @param  array  $context The log context
     * @return bool   Whether the record has been processed
     */
    public function addError($message, array $context = array())
    {
        return $this->addRecord(static::ERROR, $message, $context);
    }
 
    /**
     * Adds a log record at the CRITICAL level.
     *
     * @param  string $message The log message
     * @param  array  $context The log context
     * @return bool   Whether the record has been processed
     */
    public function addCritical($message, array $context = array())
    {
        return $this->addRecord(static::CRITICAL, $message, $context);
    }
 
    /**
     * Adds a log record at the ALERT level.
     *
     * @param  string $message The log message
     * @param  array  $context The log context
     * @return bool   Whether the record has been processed
     */
    public function addAlert($message, array $context = array())
    {
        return $this->addRecord(static::ALERT, $message, $context);
    }
 
    /**
     * Adds a log record at the EMERGENCY level.
     *
     * @param  string $message The log message
     * @param  array  $context The log context
     * @return bool   Whether the record has been processed
/home/master/mautibox.ru/system/src/Grav/Common/Errors/Errors.php
                $error_page->addCustomCss('whoops.css');
                $whoops->prependHandler($error_page);
                break;
            case -1:
                $whoops->prependHandler(new BareHandler);
                break;
            default:
                $whoops->prependHandler(new SimplePageHandler);
                break;
        }
 
        if ($jsonRequest || Misc::isAjaxRequest()) {
            $whoops->prependHandler(new JsonResponseHandler());
        }
 
        if (isset($config['log']) && $config['log']) {
            $logger = $grav['log'];
            $whoops->pushHandler(function ($exception, $inspector, $run) use ($logger) {
                try {
                    $logger->addCritical($exception->getMessage() . ' - Trace: ' . $exception->getTraceAsString());
                } catch (Exception $e) {
                    echo $e;
                }
            });
        }
 
        $whoops->register();
 
        // Re-register deprecation handler.
        $grav['debugger']->setErrorHandler();
    }
}
 
/home/master/mautibox.ru/vendor/filp/whoops/src/Whoops/Handler/CallbackHandler.php
                'Argument to ' . __METHOD__ . ' must be valid callable'
            );
        }
 
        $this->callable = $callable;
    }
 
    /**
     * @return int|null
     */
    public function handle()
    {
        $exception = $this->getException();
        $inspector = $this->getInspector();
        $run       = $this->getRun();
        $callable  = $this->callable;
 
        // invoke the callable directly, to get simpler stacktraces (in comparison to call_user_func).
        // this assumes that $callable is a properly typed php-callable, which we check in __construct().
        return $callable($exception, $inspector, $run);
    }
}
 
/home/master/mautibox.ru/vendor/filp/whoops/src/Whoops/Run.php
        // Capture output produced while handling the exception,
        // we might want to send it straight away to the client,
        // or return it silently.
        $this->system->startOutputBuffering();
 
        // Just in case there are no handlers:
        $handlerResponse = null;
        $handlerContentType = null;
 
        try {
            foreach (array_reverse($this->handlerStack) as $handler) {
                $handler->setRun($this);
                $handler->setInspector($inspector);
                $handler->setException($exception);
 
                // The HandlerInterface does not require an Exception passed to handle()
                // and neither of our bundled handlers use it.
                // However, 3rd party handlers may have already relied on this parameter,
                // and removing it would be possibly breaking for users.
                $handlerResponse = $handler->handle($exception);
 
                // Collect the content type for possible sending in the headers.
                $handlerContentType = method_exists($handler, 'contentType') ? $handler->contentType() : null;
 
                if (in_array($handlerResponse, [Handler::LAST_HANDLER, Handler::QUIT])) {
                    // The Handler has handled the exception in some way, and
                    // wishes to quit execution (Handler::QUIT), or skip any
                    // other handlers (Handler::LAST_HANDLER). If $this->allowQuit
                    // is false, Handler::QUIT behaves like Handler::LAST_HANDLER
                    break;
                }
            }
 
            $willQuit = $handlerResponse == Handler::QUIT && $this->allowQuit();
        } finally {
            $output = $this->system->cleanOutputBuffer();
        }
 
        // If we're allowed to, send output generated by handlers directly
        // to the output, otherwise, and if the script doesn't quit, return
/home/master/mautibox.ru/vendor/filp/whoops/src/Whoops/Run.php
    public function handleError($level, $message, $file = null, $line = null)
    {
        if ($level & $this->system->getErrorReportingLevel()) {
            foreach ($this->silencedPatterns as $entry) {
                $pathMatches = (bool) preg_match($entry["pattern"], $file);
                $levelMatches = $level & $entry["levels"];
                if ($pathMatches && $levelMatches) {
                    // Ignore the error, abort handling
                    // See https://github.com/filp/whoops/issues/418
                    return true;
                }
            }
 
            // XXX we pass $level for the "code" param only for BC reasons.
            // see https://github.com/filp/whoops/issues/267
            $exception = new ErrorException($message, /*code*/ $level, /*severity*/ $level, $file, $line);
            if ($this->canThrowExceptions) {
                throw $exception;
            } else {
                $this->handleException($exception);
            }
            // Do not propagate errors which were already handled by Whoops.
            return true;
        }
 
        // Propagate error to the next handler, allows error_get_last() to
        // work on silenced errors.
        return false;
    }
 
    /**
     * Special case to deal with Fatal errors and the like.
     *
     * @return void
     */
    public function handleShutdown()
    {
        // If we reached this step, we are in shutdown handler.
        // An exception thrown in a shutdown handler will not be propagated
        // to the exception handler. Pass that information along.
/home/master/mautibox.ru/system/src/Grav/Common/Debugger.php
     */
    public function setErrorHandler()
    {
        $this->errorHandler = set_error_handler(
            [$this, 'deprecatedErrorHandler']
        );
    }
 
    /**
     * @param int $errno
     * @param string $errstr
     * @param string $errfile
     * @param int $errline
     * @return bool
     */
    public function deprecatedErrorHandler($errno, $errstr, $errfile, $errline)
    {
        if ($errno !== E_USER_DEPRECATED && $errno !== E_DEPRECATED) {
            if ($this->errorHandler) {
                return call_user_func($this->errorHandler, $errno, $errstr, $errfile, $errline);
            }
 
            return true;
        }
 
        if (!$this->enabled) {
            return true;
        }
 
        // Figure out error scope from the error.
        $scope = 'unknown';
        if (stripos($errstr, 'grav') !== false) {
            $scope = 'grav';
        } elseif (strpos($errfile, '/twig/') !== false) {
            $scope = 'twig';
            // TODO: remove when upgrading to Twig 2+
            if (str_contains($errstr, '#[\ReturnTypeWillChange]') || str_contains($errstr, 'Passing null to parameter')) {
                return true;
            }
        } elseif (stripos($errfile, '/yaml/') !== false) {
[internal]
[internal]

Environment & details:

empty
empty
empty
empty
Key Value
redirect_after_login
"/blog/customer-journey-map"
user
Grav\Common\User\User {#795}
messages
Grav\Framework\Session\Messages {#1348}
Key Value
USER
"master"
HOME
"/home/master"
HTTP_ACCEPT_ENCODING
"gzip, br, zstd, deflate"
HTTP_USER_AGENT
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
HTTP_ACCEPT
"*/*"
HTTP_HOST
"mautibox.ru"
SCRIPT_FILENAME
"/home/master/mautibox.ru//index.php"
REDIRECT_STATUS
"200"
SERVER_NAME
"mautibox.ru"
SERVER_PORT
"443"
SERVER_ADDR
"77.223.98.65"
REMOTE_PORT
"16583"
REMOTE_ADDR
"216.73.216.62"
SERVER_SOFTWARE
"nginx/1.18.0"
GATEWAY_INTERFACE
"CGI/1.1"
HTTPS
"on"
REQUEST_SCHEME
"https"
SERVER_PROTOCOL
"HTTP/2.0"
DOCUMENT_ROOT
"/home/master/mautibox.ru"
DOCUMENT_URI
"/index.php"
REQUEST_URI
"/blog/customer-journey-map"
SCRIPT_NAME
"/index.php"
CONTENT_LENGTH
""
CONTENT_TYPE
""
REQUEST_METHOD
"GET"
QUERY_STRING
""
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1753355752.3275
REQUEST_TIME
1753355752
empty
0. Whoops\Handler\PrettyPageHandler
1. Whoops\Handler\CallbackHandler
Crikey! There was an error...
Whoops \ Exception \ ErrorException (E_WARNING)
Unknown: write failed: No space left on device (28) Whoops\Exception\ErrorException thrown with message "Unknown: write failed: No space left on device (28)" Stacktrace: #2 Whoops\Exception\ErrorException in Unknown:0 #1 Whoops\Run:handleError in /home/master/mautibox.ru/system/src/Grav/Common/Debugger.php:847 #0 Grav\Common\Debugger:deprecatedErrorHandler in [internal]:0
Stack frames (3)
2
Whoops\Exception\ErrorException
Unknown0
1
Whoops\Run handleError
/system/src/Grav/Common/Debugger.php847
0
Grav\Common\Debugger deprecatedErrorHandler
[internal]0
Unknown
Arguments
  1. "Unknown: write failed: No space left on device (28)"
    
/home/master/mautibox.ru/system/src/Grav/Common/Debugger.php
     */
    public function setErrorHandler()
    {
        $this->errorHandler = set_error_handler(
            [$this, 'deprecatedErrorHandler']
        );
    }
 
    /**
     * @param int $errno
     * @param string $errstr
     * @param string $errfile
     * @param int $errline
     * @return bool
     */
    public function deprecatedErrorHandler($errno, $errstr, $errfile, $errline)
    {
        if ($errno !== E_USER_DEPRECATED && $errno !== E_DEPRECATED) {
            if ($this->errorHandler) {
                return call_user_func($this->errorHandler, $errno, $errstr, $errfile, $errline);
            }
 
            return true;
        }
 
        if (!$this->enabled) {
            return true;
        }
 
        // Figure out error scope from the error.
        $scope = 'unknown';
        if (stripos($errstr, 'grav') !== false) {
            $scope = 'grav';
        } elseif (strpos($errfile, '/twig/') !== false) {
            $scope = 'twig';
            // TODO: remove when upgrading to Twig 2+
            if (str_contains($errstr, '#[\ReturnTypeWillChange]') || str_contains($errstr, 'Passing null to parameter')) {
                return true;
            }
        } elseif (stripos($errfile, '/yaml/') !== false) {
[internal]

Environment & details:

empty
empty
empty
empty
Key Value
redirect_after_login
"/blog/customer-journey-map"
user
Grav\Common\User\User {#795}
messages
Grav\Framework\Session\Messages {#1348}
Key Value
USER
"master"
HOME
"/home/master"
HTTP_ACCEPT_ENCODING
"gzip, br, zstd, deflate"
HTTP_USER_AGENT
"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)"
HTTP_ACCEPT
"*/*"
HTTP_HOST
"mautibox.ru"
SCRIPT_FILENAME
"/home/master/mautibox.ru//index.php"
REDIRECT_STATUS
"200"
SERVER_NAME
"mautibox.ru"
SERVER_PORT
"443"
SERVER_ADDR
"77.223.98.65"
REMOTE_PORT
"16583"
REMOTE_ADDR
"216.73.216.62"
SERVER_SOFTWARE
"nginx/1.18.0"
GATEWAY_INTERFACE
"CGI/1.1"
HTTPS
"on"
REQUEST_SCHEME
"https"
SERVER_PROTOCOL
"HTTP/2.0"
DOCUMENT_ROOT
"/home/master/mautibox.ru"
DOCUMENT_URI
"/index.php"
REQUEST_URI
"/blog/customer-journey-map"
SCRIPT_NAME
"/index.php"
CONTENT_LENGTH
""
CONTENT_TYPE
""
REQUEST_METHOD
"GET"
QUERY_STRING
""
FCGI_ROLE
"RESPONDER"
PHP_SELF
"/index.php"
REQUEST_TIME_FLOAT
1753355752.3275
REQUEST_TIME
1753355752
empty
0. Whoops\Handler\PrettyPageHandler
1. Whoops\Handler\CallbackHandler