Reproduce:
Error log:
#19703 /srv/www/lingnu.com/libraries/src/Language/Language.php(211): Joomla\CMS\Language\Language->load()
#19704 /srv/www/lingnu.com/libraries/src/Language/LanguageFactory.php(35): Joomla\CMS\Language\Language->__construct()
#19705 /srv/www/lingnu.com/libraries/src/Language/CachingLanguageFactory.php(45): Joomla\CMS\Language\LanguageFactory->createLanguage()
#19706 /srv/www/lingnu.com/libraries/src/Factory.php(745): Joomla\CMS\Language\CachingLanguageFactory->createLanguage()
#19707 /srv/www/lingnu.com/libraries/src/Factory.php(305): Joomla\CMS\Factory::createLanguage()
#19708 /srv/www/lingnu.com/libraries/src/Language/Text.php(257): Joomla\CMS\Factory::getLanguage()
#19709 /srv/www/lingnu.com/libraries/src/Language/LanguageHelper.php(522): Joomla\CMS\Language\Text::sprintf()
#19710 /srv/www/lingnu.com/libraries/src/Language/Language.php(815): Joomla\CMS\Language\LanguageHelper::parseIniFile()
#19711 /srv/www/lingnu.com/libraries/src/Language/Language.php(786): Joomla\CMS\Language\Language->parse()
#19712 /srv/www/lingnu.com/libraries/src/Language/Language.php(677): Joomla\CMS\Language\Language->loadLanguage()
#19713 /srv/www/lingnu.com/libraries/src/Language/Language.php(646): Joomla\CMS\Language\Language->load()
#19714 /srv/www/lingnu.com/libraries/src/Language/Language.php(211): Joomla\CMS\Language\Language->load()
#19715 /srv/www/lingnu.com/libraries/src/Language/LanguageFactory.php(35): Joomla\CMS\Language\Language->__construct()
#19716 /srv/www/lingnu.com/libraries/src/Language/CachingLanguageFactory.php(45): Joomla\CMS\Language\LanguageFactory->createLanguage()
#19717 /srv/www/lingnu.com/libraries/src/Factory.php(745): Joomla\CMS\Language\CachingLanguageFactory->createLanguage()
#19718 /srv/www/lingnu.com/libraries/src/Factory.php(305): Joomla\CMS\Factory::createLanguage()
#19719 /srv/www/lingnu.com/libraries/src/Language/Text.php(257): Joomla\CMS\Factory::getLanguage()
#19720 /srv/www/lingnu.com/libraries/src/Language/LanguageHelper.php(522): Joomla\CMS\Language\Text::sprintf()
#19721 /srv/www/lingnu.com/libraries/src/Language/Language.php(815): Joomla\CMS\Language\LanguageHelper::parseIniFile()
#19722 /srv/www/lingnu.com/libraries/src/Language/Language.php(786): Joomla\CMS\Language\Language->parse()
#19723 /srv/www/lingnu.com/libraries/src/Language/Language.php(677): Joomla\CMS\Language\Language->loadLanguage()
#19724 /srv/www/lingnu.com/libraries/src/Language/Language.php(646): Joomla\CMS\Language\Language->load()
#19725 /srv/www/lingnu.com/libraries/src/Language/Language.php(211): Joomla\CMS\Language\Language->load()
#19726 /srv/www/lingnu.com/libraries/src/Language/LanguageFactory.php(35): Joomla\CMS\Language\Language->__construct()
#19727 /srv/www/lingnu.com/libraries/src/Language/CachingLanguageFactory.php(45): Joomla\CMS\Language\LanguageFactory->createLanguage()
#19728 /srv/www/lingnu.com/libraries/src/Factory.php(745): Joomla\CMS\Language\CachingLanguageFactory->createLanguage()
#19729 /srv/www/lingnu.com/libraries/src/Factory.php(305): Joomla\CMS\Factory::createLanguage()
#19730 /srv/www/lingnu.com/libraries/src/Language/Text.php(257): Joomla\CMS\Factory::getLanguage()
#19731 /srv/www/lingnu.com/libraries/src/Language/LanguageHelper.php(522): Joomla\CMS\Language\Text::sprintf()
#19732 /srv/www/lingnu.com/libraries/src/Language/Language.php(815): Joomla\CMS\Language\LanguageHelper::parseIniFile()
#19733 /srv/www/lingnu.com/libraries/src/Language/Language.php(786): Joomla\CMS\Language\Language->parse()
#19734 /srv/www/lingnu.com/libraries/src/Language/Language.php(677): Joomla\CMS\Language\Language->loadLanguage()
#19735 /srv/www/lingnu.com/libraries/src/Language/Language.php(646): Joomla\CMS\Language\Language->load()
#19736 /srv/www/lingnu.com/libraries/src/Language/Language.php(211): Joomla\CMS\Language\Language->load()
#19737 /srv/www/lingnu.com/libraries/src/Language/LanguageFactory.php(35): Joomla\CMS\Language\Language->__construct()
#19738 /srv/www/lingnu.com/libraries/src/Language/CachingLanguageFactory.php(45): Joomla\CMS\Language\LanguageFactory->createLanguage()
#19739 /srv/www/lingnu.com/installation/src/Application/InstallationApplication.php(429): Joomla\CMS\Language\CachingLanguageFactory->createLanguage()
#19740 /srv/www/lingnu.com/installation/src/Application/InstallationApplication.php(220): Joomla\CMS\Installation\Application\InstallationApplication->initialiseApp()
#19741 /srv/www/lingnu.com/installation/src/Application/InstallationApplication.php(237): Joomla\CMS\Installation\Application\InstallationApplication->doExecute()
#19742 /srv/www/lingnu.com/installation/includes/app.php(68): Joomla\CMS\Installation\Application\InstallationApplication->execute()
#19743 /srv/www/lingnu.com/installation/index.php(32): require_once('...')
#19744 {main}
6.2
Error message saying Joomla can't start the installer because it doesn't have permission to create directories.
Everything hangs for 30 seconds, and then the red "error 500" screen with no more details.
Ubuntu 26.04, php-fpm 8.5, nginx.
It's not about the fact that the installer doesn't succeed. It's about the lack of proper error message.
| Labels |
Added:
bug
|
||
| Labels |
Added:
No Code Attached Yet
|
||
The problem is that Joomla is unable to create the cache folder due to the permissions - the caching of language files was introduced with #45289
The fundamental problem is that Text::sprintf() assumes a functioning language object exists. During initial language initialisation, that assumption isn't necessarily true.
} catch (FilesystemException) {
try {
Log::add(
Text::sprintf('JLIB_LANGUAGE_ERROR_CANNOT_WRITE_CACHE', str_replace(JPATH_ROOT, '', $cacheFile)),
Log::WARNING,
'language'
);
}
An option would be change this to a non-translatable string
} catch (FilesystemException) {
Log::add(
'Unable to write language cache file: '
. str_replace(JPATH_ROOT, '', $cacheFile),
Log::WARNING,
'language'
);
}
That should solve the problem but it needs a mainatiners decision @MacJoom @drmenzelit
Looking at the stack trace it appears that it might be trying to output an error message but it is stuck in a recursive loop