Project

General

Profile

Actions

Bug #105618

open

Icon with identifier "default-not-found" is not registered

Added by Marco von Arx 21 days ago. Updated 20 days ago.

Status:
Needs Feedback
Priority:
Should have
Assignee:
-
Category:
Backend API
Target version:
-
Start date:
2024-11-18
Due date:
% Done:

0%

Estimated time:
TYPO3 Version:
12
PHP Version:
8.1
Tags:
Complexity:
easy
Is Regression:
Sprint Focus:

Description

At irregular intervals, the T3 backend stops working. The IconRegistry throws the error: "Icon with identifier 'default-not-found' is not registered."
Investigations show that the cache file suddenly has no entries. The cache file typo3temp/var/cache/data/assets/BackendIcons_xxxx contained the value a:0:{}.
It appears that an error occurs during the saving process. The website has 20+ backend users who make numerous content changes daily.
After clearing all caches the backend starts working again.

My workaround is to Xclass IconRegistry and check if $cacheEntry contains a non-empty array.


    protected function getCachedBackendIcons()
    {
        $cacheIdentifier = $this->getBackendIconsCacheIdentifier();
        $cacheEntry = $this->cache->get($cacheIdentifier);  

        if (is_array($cacheEntry)
            && count($cacheEntry) > 0) {
            $this->icons = $cacheEntry;
        } else {

            if ($cacheEntry !== false) {

                //$reportEmailAddress = '';
                //$subject = 'Icon Registry Fehler: ' . ($GLOBALS['TYPO3_CONF_VARS']['SYS']['sitename'] ?? '');
                //$message = 'cacheEntry ist vorhanden, aber das Array ist leer.';
                //mail($reportEmailAddress, $subject, $message);

            }

            $this->registerBackendIcons();
            // all found icons should now be present, for historic reasons now merge w/ the statically declared icons
            $this->icons = array_merge($this->icons, $this->iconAliases, $this->staticIcons);
            $this->cache->set($cacheIdentifier, $this->icons);
        }
        // if there's now at least one icon registered, consider it successful
        if (is_array($this->icons) && (count($this->icons) >= count($this->staticIcons))) {
            $this->backendIconsInitialized = true;
        }
    }

It seems that others are experiencing the same issue (https://stackoverflow.com/questions/66821084/icon-with-identifier-default-not-found-is-not-registered)

Actions #1

Updated by Garvin Hicking 21 days ago ยท Edited

  • Status changed from New to Needs Feedback

Could you describe your webserver setup (webserver time, load, filesystem, memory, memory load)?

If you xclass this, just before the ->set command, please do a check if this->icons is empty, that would allow to catch the request that causes this. In this case please log the request uri and get/post data and memory_get_usage() to see at which point this may be caused.

Actions #2

Updated by Marco von Arx 20 days ago

I have added log statements to gather more details and will share the findings as soon as they are available.

Actions

Also available in: Atom PDF