RuntimeException
Failed to write cache file "/nas/content/live/gfguide/wp-content/cache/gantry5/TMSC/twig/72/72951f605c9bfa489e3e3081360d0e2fe7af1d468b6869f0e3a05c2fc252d427.php". RuntimeException thrown with message "Failed to write cache file "/nas/content/live/gfguide/wp-content/cache/gantry5/TMSC/twig/72/72951f605c9bfa489e3e3081360d0e2fe7af1d468b6869f0e3a05c2fc252d427.php"." Stacktrace: #11 RuntimeException in /nas/content/live/gfguide/wp-content/plugins/gantry5/compat/vendor/twig/twig/src/Cache/FilesystemCache.php:80 #10 Twig\Cache\FilesystemCache:write in /nas/content/live/gfguide/wp-content/plugins/gantry5/compat/vendor/twig/twig/src/Environment.php:487 #9 Twig\Environment:loadClass in /nas/content/live/gfguide/wp-content/plugins/gantry5/compat/vendor/twig/twig/src/Environment.php:445 #8 Twig\Environment:loadTemplate in /nas/content/live/gfguide/wp-content/plugins/gantry5/compat/vendor/twig/twig/src/Environment.php:423 #7 Twig\Environment:load in /nas/content/live/gfguide/wp-content/plugins/gantry5/vendor/timber/timber/lib/Loader.php:78 #6 Timber\Loader:render in /nas/content/live/gfguide/wp-content/plugins/gantry5/vendor/timber/timber/lib/Timber.php:334 #5 Timber\Timber:compile in /nas/content/live/gfguide/wp-content/plugins/gantry5/vendor/timber/timber/lib/Timber.php:383 #4 Timber\Timber:fetch in /nas/content/live/gfguide/wp-content/plugins/gantry5/vendor/timber/timber/lib/Timber.php:410 #3 Timber\Timber:render in /nas/content/live/gfguide/wp-content/themes/g5_helium/archive.php:52 #2 include in /nas/content/live/gfguide/wp-includes/template-loader.php:106 #1 require_once in /nas/content/live/gfguide/wp-blog-header.php:19 #0 require in /nas/content/live/gfguide/index.php:17
Stack frames (12)
11
RuntimeException
/compat/vendor/twig/twig/src/Cache/FilesystemCache.php80
10
Twig\Cache\FilesystemCache write
/compat/vendor/twig/twig/src/Environment.php487
9
Twig\Environment loadClass
/compat/vendor/twig/twig/src/Environment.php445
8
Twig\Environment loadTemplate
/compat/vendor/twig/twig/src/Environment.php423
7
Twig\Environment load
/vendor/timber/timber/lib/Loader.php78
6
Timber\Loader render
/vendor/timber/timber/lib/Timber.php334
5
Timber\Timber compile
/vendor/timber/timber/lib/Timber.php383
4
Timber\Timber fetch
/vendor/timber/timber/lib/Timber.php410
3
Timber\Timber render
/nas/content/live/gfguide/wp-content/themes/g5_helium/archive.php52
2
include
/nas/content/live/gfguide/wp-includes/template-loader.php106
1
require_once
/nas/content/live/gfguide/wp-blog-header.php19
0
require
/nas/content/live/gfguide/index.php17
            throw new \RuntimeException(sprintf('Unable to write in the cache directory (%s).', $dir));
        }
 
        $tmpFile = tempnam($dir, basename($key));
        if (false !== @file_put_contents($tmpFile, $content) && @rename($tmpFile, $key)) {
            @chmod($key, 0666 & ~umask());
 
            if (self::FORCE_BYTECODE_INVALIDATION == ($this->options & self::FORCE_BYTECODE_INVALIDATION)) {
                // Compile cached file into bytecode cache
                if (\function_exists('opcache_invalidate') && filter_var(ini_get('opcache.enable'), \FILTER_VALIDATE_BOOLEAN)) {
                    @opcache_invalidate($key, true);
                } elseif (\function_exists('apc_compile_file')) {
                    apc_compile_file($key);
                }
            }
 
            return;
        }
 
        throw new \RuntimeException(sprintf('Failed to write cache file "%s".', $key));
    }
 
    public function getTimestamp($key)
    {
        if (!file_exists($key)) {
            return 0;
        }
 
        return (int) @filemtime($key);
    }
}
 
class_alias('Twig\Cache\FilesystemCache', 'Twig_Cache_Filesystem');
 
 
            if (!$this->isAutoReload() || $this->isTemplateFresh($name, $this->cache->getTimestamp($key))) {
                $this->cache->load($key);
            }
 
            $source = null;
            if (!class_exists($cls, false)) {
                $loader = $this->getLoader();
                if (!$loader instanceof SourceContextLoaderInterface) {
                    $source = new Source($loader->getSource($name), $name);
                } else {
                    $source = $loader->getSourceContext($name);
                }
 
                $content = $this->compileSource($source);
 
                if ($this->bcWriteCacheFile) {
                    $this->writeCacheFile($key, $content);
                } else {
                    $this->cache->write($key, $content);
                    $this->cache->load($key);
                }
 
                if (!class_exists($mainCls, false)) {
                    /* Last line of defense if either $this->bcWriteCacheFile was used,
                     * $this->cache is implemented as a no-op or we have a race condition
                     * where the cache was cleared between the above calls to write to and load from
                     * the cache.
                     */
                    eval('?>'.$content);
                }
            }
 
            if (!class_exists($cls, false)) {
                throw new RuntimeError(sprintf('Failed to load Twig template "%s", index "%s": cache might be corrupted.', $name, $index), -1, $source);
            }
        }
 
        if (!$this->runtimeInitialized) {
            $this->initRuntime();
    /**
     * Loads a template internal representation.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @param string $name  The template name
     * @param int    $index The index if it is an embedded template
     *
     * @return \Twig_TemplateInterface A template instance representing the given template name
     *
     * @throws LoaderError  When the template cannot be found
     * @throws RuntimeError When a previously generated cache is corrupted
     * @throws SyntaxError  When an error occurred during compilation
     *
     * @internal
     */
    public function loadTemplate($name, $index = null)
    {
        return $this->loadClass($this->getTemplateClass($name), $name, $index);
    }
 
    /**
     * @internal
     */
    public function loadClass($cls, $name, $index = null)
    {
        $mainCls = $cls;
        if (null !== $index) {
            $cls .= '___'.$index;
        }
 
        if (isset($this->loadedTemplates[$cls])) {
            return $this->loadedTemplates[$cls];
        }
 
        if (!class_exists($cls, false)) {
            if ($this->bcGetCacheFilename) {
                $key = $this->getCacheFilename($name);
            } else {
     *
     * @param string|TemplateWrapper|\Twig\Template $name The template name
     *
     * @throws LoaderError  When the template cannot be found
     * @throws RuntimeError When a previously generated cache is corrupted
     * @throws SyntaxError  When an error occurred during compilation
     *
     * @return TemplateWrapper
     */
    public function load($name)
    {
        if ($name instanceof TemplateWrapper) {
            return $name;
        }
 
        if ($name instanceof Template) {
            return new TemplateWrapper($this, $name);
        }
 
        return new TemplateWrapper($this, $this->loadTemplate($name));
    }
 
    /**
     * Loads a template internal representation.
     *
     * This method is for internal use only and should never be called
     * directly.
     *
     * @param string $name  The template name
     * @param int    $index The index if it is an embedded template
     *
     * @return \Twig_TemplateInterface A template instance representing the given template name
     *
     * @throws LoaderError  When the template cannot be found
     * @throws RuntimeError When a previously generated cache is corrupted
     * @throws SyntaxError  When an error occurred during compilation
     *
     * @internal
     */
    public function loadTemplate($name, $index = null)
        }
 
        $key = null;
        $output = false;
        if ( false !== $expires ) {
            ksort($data);
            $key = md5($file.json_encode($data));
            $output = $this->get_cache($key, self::CACHEGROUP, $cache_mode);
        }
 
        if ( false === $output || null === $output ) {
            $twig = $this->get_twig();
            if ( strlen($file) ) {
                $loader = $this->get_loader();
                $result = $loader->getCacheKey($file);
                do_action('timber_loader_render_file', $result);
            }
            $data = apply_filters('timber_loader_render_data', $data);
            $data = apply_filters('timber/loader/render_data', $data, $file);
            $template = $twig->load($file);
            $output = $template->render($data);
        }
 
        if ( false !== $output && false !== $expires && null !== $key ) {
            $this->delete_cache();
            $this->set_cache($key, $output, self::CACHEGROUP, $expires, $cache_mode);
        }
        $output = apply_filters('timber_output', $output);
        return apply_filters('timber/output', $output, $data, $file);
    }
 
    protected function delete_cache() {
        Cleaner::delete_transients();
    }
 
    /**
     * Get first existing template.
     *
     * @param array|string $templates  Name(s) of the Twig template(s) to choose from.
     * @return string|bool             Name of chosen template, otherwise false.
        if ( $via_render ) {
            $file = apply_filters('timber_render_file', $file);
        } else {
            $file = apply_filters('timber_compile_file', $file);
        }
 
        $output = false;
 
        if ($file !== false) {
            if ( is_null($data) ) {
                $data = array();
            }
 
            if ( $via_render ) {
                $data = apply_filters('timber_render_data', $data);
            } else {
                $data = apply_filters('timber_compile_data', $data);
            }
 
            $output = $loader->render($file, $data, $expires, $cache_mode);
        } else {
            if ( is_array($filenames) ) {
                $filenames = implode(", ", $filenames);
            }
            Helper::error_log( 'Error loading your template files: '.$filenames.'. Make sure one of these files exists.' );
        }
 
        do_action('timber_compile_done');
        return $output;
    }
 
    /**
     * Compile a string.
     *
     * @api
     * @example
     * ```php
     * $data = array(
     *     'username' => 'Jane Doe',
     * );
        $twig = $dummy_loader->get_twig();
        $template = $twig->createTemplate($string);
        return $template->render($data);
    }
 
    /**
     * Fetch function.
     *
     * @api
     * @param array|string $filenames  Name of the Twig file to render. If this is an array of files, Timber will
     *                                 render the first file that exists.
     * @param array        $data       Optional. An array of data to use in Twig template.
     * @param bool|int     $expires    Optional. In seconds. Use false to disable cache altogether. When passed an
     *                                 array, the first value is used for non-logged in visitors, the second for users.
     *                                 Default false.
     * @param string       $cache_mode Optional. Any of the cache mode constants defined in TimberLoader.
     * @return bool|string The returned output.
     */
    public static function fetch( $filenames, $data = array(), $expires = false, $cache_mode = Loader::CACHE_USE_DEFAULT ) {
        $output = self::compile($filenames, $data, $expires, $cache_mode, true);
        $output = apply_filters('timber_compile_result', $output);
        return $output;
    }
 
    /**
     * Render function.
     *
     * Passes data to a Twig file and echoes the output.
     *
     * @api
     * @example
     * ```php
     * $context = Timber::context();
     *
     * Timber::render( 'index.twig', $context );
     * ```
     * @param array|string $filenames  Name of the Twig file to render. If this is an array of files, Timber will
     *                                 render the first file that exists.
     * @param array        $data       Optional. An array of data to use in Twig template.
     * @param bool|int     $expires    Optional. In seconds. Use false to disable cache altogether. When passed an
     * Passes data to a Twig file and echoes the output.
     *
     * @api
     * @example
     * ```php
     * $context = Timber::context();
     *
     * Timber::render( 'index.twig', $context );
     * ```
     * @param array|string $filenames  Name of the Twig file to render. If this is an array of files, Timber will
     *                                 render the first file that exists.
     * @param array        $data       Optional. An array of data to use in Twig template.
     * @param bool|int     $expires    Optional. In seconds. Use false to disable cache altogether. When passed an
     *                                 array, the first value is used for non-logged in visitors, the second for users.
     *                                 Default false.
     * @param string       $cache_mode Optional. Any of the cache mode constants defined in TimberLoader.
     * @return bool|string The echoed output.
     */
    public static function render( $filenames, $data = array(), $expires = false, $cache_mode = Loader::CACHE_USE_DEFAULT ) {
        $output = self::fetch($filenames, $data, $expires, $cache_mode);
        echo $output;
        return $output;
    }
 
    /**
     * Render a string with Twig variables.
     *
     * @api
     * @example
     * ```php
     * $data = array(
     *     'username' => 'Jane Doe',
     * );
     *
     * Timber::render_string( 'Hi {{ username }}, I’m a string with a custom Twig variable', $data );
     * ```
     * @param string $string A string with Twig variables.
     * @param array  $data   An array of data to use in Twig template.
     * @return bool|string
     */
$context['title'] = __('Archive', 'g5_helium');
if (is_day()) {
    $context['title'] = __('Archive:', 'g5_helium') . ' ' . get_the_date('j F Y');
} else if (is_month()) {
    $context['title'] = __('Archive:', 'g5_helium') . ' ' . get_the_date('F Y');
} else if (is_year()) {
    $context['title'] = __('Archive:', 'g5_helium') . ' ' . get_the_date('Y');
} else if (is_tag()) {
    $context['title'] = single_tag_title('', false);
} else if (is_category()) {
    $context['title'] = single_cat_title('', false);
    array_unshift($templates, 'archive-' . get_query_var('cat') . '.html.twig');
} else if (is_post_type_archive()) {
    $context['title'] = post_type_archive_title('', false);
    array_unshift($templates, 'archive-' . get_post_type() . '.html.twig');
}

$context['posts'] = Timber::get_posts();

Timber::render($templates, $context);
 
            }
 
            break;
        }
    }
 
    if ( ! $template ) {
        $template = get_index_template();
    }
 
    /**
     * Filters the path of the current template before including it.
     *
     * @since 3.0.0
     *
     * @param string $template The path of the template to include.
     */
    $template = apply_filters( 'template_include', $template );
    if ( $template ) {
        include $template;
    } elseif ( current_user_can( 'switch_themes' ) ) {
        $theme = wp_get_theme();
        if ( $theme->errors() ) {
            wp_die( $theme->errors() );
        }
    }
    return;
}
 
<?php
/**
 * Loads the WordPress environment and template.
 *
 * @package WordPress
 */
 
if ( ! isset( $wp_did_header ) ) {
 
    $wp_did_header = true;
 
    // Load the WordPress library.
    require_once __DIR__ . '/wp-load.php';
 
    // Set up the WordPress query.
    wp();
 
    // Load the theme template.
    require_once ABSPATH . WPINC . '/template-loader.php';
 
}
 
<?php
/**
 * Front to the WordPress application. This file doesn't do anything, but loads
 * wp-blog-header.php which does and tells WordPress to load the theme.
 *
 * @package WordPress
 */
 
/**
 * Tells WordPress to load the WordPress theme and output it.
 *
 * @var bool
 */
define( 'WP_USE_THEMES', true );
 
/** Loads the WordPress Environment and Template */
require __DIR__ . '/wp-blog-header.php';
 

Environment & details:

empty
empty
empty
empty
empty
Key Value
SERVER_SOFTWARE Apache
REQUEST_URI /2019/04/
REDIRECT_HAVE_ORIGINAL_USER_AGENT claudebot
REDIRECT_HTTPS on
REDIRECT_IS_WPE 1
REDIRECT_WPE_CAN_WRITE_DISK 0
REDIRECT_WPENGINE_PHPSESSIONS on
REDIRECT_WPE_HEARTBEAT_AUTOSAVE_ONLY on
REDIRECT_WPENGINE_FORCE_STRONG_PASSWORDS on
REDIRECT_WPENGINE_CLEAR_EXPIRED_COOKIES off
REDIRECT_WPENGINE_ACCOUNT gfguide
REDIRECT_WPENGINE_SESSION_LOCKING on
REDIRECT_STATUS 200
HAVE_ORIGINAL_USER_AGENT claudebot
HTTPS on
IS_WPE 1
WPE_CAN_WRITE_DISK 0
WPENGINE_PHPSESSIONS on
WPE_HEARTBEAT_AUTOSAVE_ONLY on
WPENGINE_FORCE_STRONG_PASSWORDS on
WPENGINE_CLEAR_EXPIRED_COOKIES off
WPENGINE_ACCOUNT gfguide
WPENGINE_SESSION_LOCKING on
HTTP_HOST www.goodfuneralguide.co.uk
HTTP_CONNECTION close
HTTP_X_IS_BOT 1
HTTP_USER_AGENT claudebot
HTTP_X_FORWARDED_HOST www.goodfuneralguide.co.uk
HTTP_X_WPE_SSL 1
HTTP_X_WPE_INSTALL_NAME gfguide
HTTP_WPE_READONLY on
HTTP_CF_CONNECTING_IP 54.224.52.210, 54.224.52.210
HTTP_X_WPE_REQUEST_ID 42496232881fa901b2fed57c075b50fc
HTTP_X_WPE_LOCAL_SSL 1
HTTP_X_FORWARDED_PROTO https
HTTP_ACCEPT */*
HTTP_X_WORDPRESS_TYPE DEFAULT
HTTP_WPE_UPLOAD_MAX_FILESIZE 50M
HTTP_WPE_POST_MAX_SIZE 100M
HTTP_VIA 1.1 pod-101328:varnish:106 (Varnish/7.4)
HTTP_X_UA_ORIGINAL claudebot
HTTP_RAWHOST www.goodfuneralguide.co.uk
HTTP_X_BOT_CACHE YES
HTTP_X_CACHE_GROUP bot
HTTP_ACCEPT_ENCODING gzip
PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
SERVER_SIGNATURE
SERVER_NAME www.goodfuneralguide.co.uk
SERVER_ADDR 127.0.0.1
SERVER_PORT 80
REMOTE_ADDR 54.224.52.210
DOCUMENT_ROOT /nas/content/live/gfguide
REQUEST_SCHEME http
CONTEXT_PREFIX
CONTEXT_DOCUMENT_ROOT /nas/content/live/gfguide
SERVER_ADMIN [no address given]
SCRIPT_FILENAME /nas/content/live/gfguide/index.php
REMOTE_PORT 62218
REDIRECT_URL /2019/04/
GATEWAY_INTERFACE CGI/1.1
SERVER_PROTOCOL HTTP/1.0
REQUEST_METHOD GET
QUERY_STRING
SCRIPT_NAME /index.php
PHP_SELF /index.php
REQUEST_TIME_FLOAT 1710480935.67
REQUEST_TIME 1710480935
Key Value
APACHE2_OPCACHE_MAX_FILE_SIZE_BYTES 614400
APACHE2_OPCACHE_MEMORY_CONSUMPTION 1472
HOSTNAME pod-101328:apache2_74:v0.3.4
SHLVL 0
APACHE_RUN_DIR /var/run/apache2
APACHE_PID_FILE /var/run/apache2/apache2.pid
APACHE2_OPCACHE_REVALIDATE_FREQ 10
_ /usr/sbin/apache2ctl
APACHE2_OPCACHE_HUGE_CODE_PAGES 1
APACHE2_LISTEN_PORT_RW 6778
PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
APACHE_LOCK_DIR /var/lock/apache2
APACHE2_OPCACHE_MAX_WASTED_PERCENTAGE 5
LANG C
APACHE2_OPCACHE_MAX_ACCELERATED_FILES 1000000
APACHE_RUN_USER www-data
APACHE_RUN_GROUP www-data
APACHE2_LISTEN_PORT 6779
APACHE_LOG_DIR /var/log/apache2
PWD /
BASE_VERSION 7.4-zend
WPENGINE_ACCOUNT gfguide
WPENGINE_PHPSESSIONS on
WPENGINE_DB_SESSIONS off
WPENGINE_ALLOW_FLOCK off
WPENGINE_MAIL_HOOK on
0. Whoops\Handler\PrettyPageHandler