thx for the writeup
does seem that 2x isn't quite alpha even; appreciate the clarification.
1.x does install, and appears to work . but the 'holes', good enuf for dev, won't do for prod.
not a fan of third party security -- might poke at this to see which local SSO solution, if any, might work.
and, how to integrate it into D11 ...
@cmlara
i see the fix commit "on 2.x", followed by the auto-close, here.
(1) will the fix be backported to 8.x branch?
(2) is there a list of known-to-have-issues modules, that are at this risk?
(3) should (new) production be yet moved to 2x (still -alpha, or -dev)?
nav to .../admin/config
on one of many similar ERROR
The website encountered an unexpected error. Try again later.
TypeError: Cannot access offset of type Drupal\Core\StringTranslation\TranslatableMarkup in isset or empty in Drupal\update\ProjectCoreCompatibility->getPossibleCoreUpdateVersions() (line 83 of core/modules/update/src/ProjectCoreCompatibility.php).
Drupal\update\ProjectCoreCompatibility->__construct(Array, Array, Array) (Line: 106)
update_calculate_project_data(Array) (Line: 40)
update_requirements('runtime') (Line: 93)
@
cat core/modules/update/src/ProjectCoreCompatibility.php
protected function getPossibleCoreUpdateVersions(array $core_releases, array $supported_branches) {
83 if (!isset($core_releases[$this->existingCoreVersion])) {
// If we can't determine the existing version of core then we can't
// calculate the core compatibility of a given release based on core
// versions after the existing version.
return [];
}
EDIT core/modules/update/src/ProjectCoreCompatibility.php
64 public function __construct(array $core_data, array $core_releases, array $supported_branches) {
if (isset($core_data['existing_version'])) {
$this->existingCoreVersion = $core_data['existing_version'];
- $this->possibleCoreUpdateVersions = $this->getPossibleCoreUpdateVersions($core_releases, $supported_branch
+ //$this->possibleCoreUpdateVersions = $this->getPossibleCoreUpdateVersions($core_releases, $supported_branch
}
}
re-nav to .../admin/config
ERROR
The website encountered an unexpected error. Try again later.
TypeError: Cannot access offset of type Drupal\Core\StringTranslation\TranslatableMarkup in isset or empty in Drupal\update\ProjectSecurityData->getCoverageInfo() (line 126 of core/modules/update/src/ProjectSecurityData.php).
@
cat core/modules/update/src/ProjectSecurityData.php
public function getCoverageInfo() {
126 if (empty($this->releases[$this->existingVersion])) {
// If the existing version does not have a release, we cannot get the
// security coverage information.
return [];
}
in both cases, an issue with an `existing` version check
back to EDIT core/modules/update/src/ProjectCoreCompatibility.php
64 public function __construct(array $core_data, array $core_releases, array $supported_branches) {
+ var_dump($core_releases);
+ var_dump($supported_branches);
if (isset($core_data['existing_version'])) {
$this->existingCoreVersion = $core_data['existing_version'];
+ $this->possibleCoreUpdateVersions = $this->getPossibleCoreUpdateVersions($core_releases, $supported_branch
- //$this->possibleCoreUpdateVersions = $this->getPossibleCoreUpdateVersions($core_releases, $supported_branch
}
}
at nav to,
object(Drupal\Core\StringTranslation\TranslatableMarkup)#3202 (5) { ["string":protected]=> string(7) "Unknown" ["arguments":protected]=> array(0) { } ["translatedMarkup":protected]=> string(7) "Unknown" ["options":protected]=> array(0) { } ["stringTranslation":protected]=> object(Drupal\Core\StringTranslation\TranslationManager)#1730 (3) { ["translators":protected]=> array(1) { [30]=> array(1) { [0]=> object(Drupal\Core\StringTranslation\Translator\CustomStrings)#1719 (4) { ["translations":protected]=> array(1) { ["en"]=> array(0) { } } ["settings":protected]=> object(Drupal\Core\Site\Settings)#12 (1) { ["storage":"Drupal\Core\Site\Settings":private]=> array(2) { ["hash_salt"]=> string(74) "d...0" ["config_sync_directory"]=> string(17) "../../config_sync" } } ["_serviceIds":protected]=> array(0) { } ["_entityStorages":protected]=> array(0) { } } } } ["sortedTranslators":protected]=> array(1) { [0]=> object(Drupal\Core\StringTranslation\Translator\CustomStrings)#1719 (4) { ["translations":protected]=> array(1) { ["en"]=> array(0) { } } ["settings":protected]=> object(Drupal\Core\Site\Settings)#12 (1) { ["storage":"Drupal\Core\Site\Settings":private]=> array(2) { ["hash_salt"]=> string(74) "d...0" ["config_sync_directory"]=> string(17) "../../config_sync" } } ["_serviceIds":protected]=> array(0) { } ["_entityStorages":protected]=> array(0) { } } } ["defaultLangcode":protected]=> string(2) "en" } } array(5) { [0]=> string(5) "10.3." [1]=> string(5) "10.4." [2]=> string(5) "10.5." [3]=> string(5) "11.0." [4]=> string(5) "11.1." } The website encountered an unexpected error. Try again later.
TypeError: Cannot access offset of type Drupal\Core\StringTranslation\TranslatableMarkup in isset or empty in Drupal\update\ProjectCoreCompatibility->getPossibleCoreUpdateVersions() (line 85 of core/modules/update/src/ProjectCoreCompatibility.php).
...
last comment's that there needs to be an MR. but i see both an MR and a patch ...
can anyone clarify where this actually stands, and what specifically needs to happen to move forward?
repeating same procedure from scratch, but with php 8.4 -> 8.3,
php -v
PHP 8.3.15 (cli) (built: Dec 17 2024 18:18:02) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.3.15, Copyright (c) Zend Technologies
with Zend OPcache v8.3.15, Copyright (c), by Zend Technologies
with Xdebug v3.4.0, Copyright (c) 2002-2024, by Derick Rethans
still FAILs, as above,
The website encountered an unexpected error. Try again later.
TypeError: Cannot access offset of type Drupal\Core\StringTranslation\TranslatableMarkup in isset or empty in Drupal\update\ProjectCoreCompatibility->getPossibleCoreUpdateVersions() (line 83 of core/modules/update/src/ProjectCoreCompatibility.php).
...
this is about as simple a reproducer as i'll manage here.
i can generate a similar FAIL reliably, below.
*NO* additional modules are required.
simply disabling `automated_cron`, so as to use external cron, is sufficient.
mariadb -e "DROP DATABASE IF EXISTS ${_DB_NAME};"
_PROFILE="drupal/recommended-project"
_STABILITY="stable"
composer create-project \
--remove-vcs \
--stability ${_STABILITY} \
--no-interaction \
--no-install \
${_PROFILE} my.app
composer update
composer require drush/drush
_THIS_DB_URL="mysql://${_DB_USR}:${_DB_USR_PWD}@localhost/${_DB_NAME}?unix_socket=${_DB_UNIX_SOCK}&serverVersion=${_DB_VER}&charset=utf8mb4"
mariadb -e "DROP DATABASE IF EXISTS ${_DB_NAME};"
drush site-install standard -y \
--db-url="${_THIS_DB_URL}" \
--db-prefix="pfx_" \
--locale=en \
--account-mail="${_ADMIN_EMAIL}" \
--account-name=${_ADMIN_USR} \
--account-pass=${_ADMIN_PWD} \
--site-name="${_SITE_NAME}" \
--site-mail="${_SITE_EMAIL}" \
--sites-subdir="${_SITE_DIR}" \
install_configure_form.enable_update_status_emails=NULL
cat << EOF > web/sites/default/settings.php
<?php
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
\$config['system.logging']['error_level'] = 'verbose';
\$config['automated_cron.settings']['interval'] = 0;
\$databases = [];
\$databases['default']['default'] = [
'database' => '${_DB_NAME}',
'username' => '${_DB_USR}',
'password' => '${_DB_USR_PWD}',
'prefix' => '${_DB_PREFIX}',
'host' => 'localhost',
'port' => '',
'unix_socket' => '${_DB_UNIX_SOCK}',
'isolation_level' => 'READ COMMITTED',
'driver' => 'mysql',
'namespace' => 'Drupal\\mysql\\Driver\\Database\\mysql',
'autoload' => 'core/modules/mysql/src/Driver/Database/mysql/',
];
\$settings = [
'hash_salt' => '${_HASH_SALT}',
];
EOF
drush cr
nav to:
https://example.com/admin/config/
GOOD
simply DISABLE (uninstall) `automated_cron`
drush pm:uninstall automated_cron
drush cr
nav to:
https://example.com/admin/config/
FAIL, with
The website encountered an unexpected error. Try again later.
TypeError: Cannot access offset of type Drupal\Core\StringTranslation\TranslatableMarkup in isset or empty in Drupal\update\ProjectCoreCompatibility->getPossibleCoreUpdateVersions() (line 83 of core/modules/update/src/ProjectCoreCompatibility.php).
...
@dww
in reply to #32
> ... bug in update.module* that ... should probably fix that ...
need a separate bug for that? any specific info that helps?
> The entire contents of core/modules/node/node.info.yml on the site where this is happening
cat web/core/modules/node/node.info.yml
name: Node
type: module
description: 'Manages the creation, configuration, and display of the main site content.'
package: Core
version: VERSION
configure: entity.node_type.collection
dependencies:
- drupal:text
> The VERSION const from core/lib/Drupal.php
grep " VERSION" web/core/lib/Drupal.php
const VERSION = '11.1.0';
> Looking at the output posted above, I notice:
just to remind, i don't see these TypeError messages only with redis.
> composer require drupal/redis:dev-1.x
yes. specifically
composer require drupal/redis:dev-1.x
composer show | grep drupal/redis
drupal/redis dev-1.x c538120 Integration of Drupal with the Redis key-value store.
where
https://git.drupalcode.org/project/redis/-/commit/c53812040dd4ccec95d75b...
solves
https://www.drupal.org/project/redis/issues/3494308 🐛 FATAL "Service "queue.redis(_reliable)" not found" error when setting `queue_default` Active
> The entire contents of modules/contrib/redis/redis.info.yml
cat web/modules/contrib/redis/redis.info.yml
name: Redis
description: Provide a module placeholder, for using as dependency for module that needs Redis.
package: Performance
type: module
core_version_requirement: ^9.3 || ^10 || ^11
configure: redis.report
php: 7.1.0
> If modules/contrib/redis/.git exists.
it does,
ls -ald web/modules/contrib/redis/.git
drwxrwx---+ 8 wwwrun www 4.0K Dec 27 22:15 web/modules/contrib/redis/.git/
> Is it a git checkout?
i did not check it out; simply installed with
composer require drupal/redis:dev-1.x
> if you're using a Git checkout of any part of Drupal (core or contrib)
i do not. the project was composer-created, with '--remove-vcs' opt, all modules are composer/drush managed, and i have not yet init'd git for my own vcs at this stage.
> you need to use git_deploy for update.module to work. I'm less familiar with composer_deploy.
my initial understanding was that composer_deploy was to be used in a composer-managed install.
i tried it initially, only to bump into the TypeError again with that module.
atm, still with php 8.4, the following reproduces a "TypeError: Cannot access offset of type Drupal\Core\StringTranslation\TranslatableMarkup in isset or empty ..." error -- here.
and, yes, i understand that this may _still_ not be 'vanilla' enough :-/
just reporting atm; test with php 8.3 in on my ToDo list ...
composer create-project -vvv \
--remove-vcs \
--stability stable \
--no-interaction \
--no-install \
drupal/recommended-project my.app
(verbose output, as requested)
Running 2.8.4 (2024-12-11 11:57:47) with PHP 8.4.2 on Linux / 6.12.6-200.fc41.x86_64
Reading ./composer.json (/srv/my.app/drupal/composer.json)
Loading config file /var/lib/wwwrun/.config/composer/config.json
Loading config file /var/lib/wwwrun/.config/composer/auth.json
Loading config file ./composer.json (/srv/my.app/drupal/composer.json)
Checked CA file /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem: valid
Executing command (/srv/my.app/drupal): 'git' 'branch' '-a' '--no-color' '--no-abbrev' '-v'
Executing command (/srv/my.app/drupal): 'git' 'describe' '--exact-match' '--tags'
Executing command (CWD): 'git' '--version'
Executing command (/srv/my.app/drupal): 'git' 'log' '--pretty=%H' '-n1' 'HEAD' '--no-show-signature'
Executing command (/srv/my.app/drupal): 'hg' 'branch'
Executing command (/srv/my.app/drupal): 'fossil' 'branch' 'list'
Executing command (/srv/my.app/drupal): 'fossil' 'tag' 'list'
Executing command (/srv/my.app/drupal): 'svn' 'info' '--xml'
Reading /var/lib/wwwrun/.config/composer/composer.json
Loading config file /var/lib/wwwrun/.config/composer/config.json
Loading config file /var/lib/wwwrun/.config/composer/auth.json
Loading config file /var/lib/wwwrun/.config/composer/composer.json (/var/lib/wwwrun/.config/composer/composer.json)
Loading config file /var/lib/wwwrun/.config/composer/auth.json
Reading /var/lib/wwwrun/.config/composer/auth.json
Reading ./composer.lock (/srv/my.app/drupal/composer.lock)
Reading /srv/my.app/drupal/vendor/composer/installed.json
Reading /var/lib/wwwrun/.config/composer/vendor/composer/installed.json
Loading plugin PHPCSStandards\Composer\Plugin\Installers\PHPCodeSniffer\Plugin (from dealerdirect/phpcodesniffer-composer-installer, installed globally)
Loading plugin Symfony\Thanks\Thanks (from enumag/no-thanks, installed globally)
Creating a "drupal/recommended-project" project at "./my.app"
Loading config file /var/lib/wwwrun/.config/composer/config.json
Loading config file /var/lib/wwwrun/.config/composer/auth.json
Executing command (/srv/my.app/drupal): 'git' 'branch' '-a' '--no-color' '--no-abbrev' '-v'
Executing command (/srv/my.app/drupal): 'git' 'describe' '--exact-match' '--tags'
Executing command (/srv/my.app/drupal): 'git' 'log' '--pretty=%H' '-n1' 'HEAD' '--no-show-signature'
Executing command (/srv/my.app/drupal): 'hg' 'branch'
Executing command (/srv/my.app/drupal): 'fossil' 'branch' 'list'
Executing command (/srv/my.app/drupal): 'fossil' 'tag' 'list'
Executing command (/srv/my.app/drupal): 'svn' 'info' '--xml'
Reading /var/lib/wwwrun/.config/composer/composer.json
Loading config file /var/lib/wwwrun/.config/composer/config.json
Loading config file /var/lib/wwwrun/.config/composer/auth.json
Loading config file /var/lib/wwwrun/.config/composer/composer.json (/var/lib/wwwrun/.config/composer/composer.json)
Loading config file /var/lib/wwwrun/.config/composer/auth.json
Reading /var/lib/wwwrun/.config/composer/auth.json
Reading /var/lib/wwwrun/.config/composer/vendor/composer/installed.json
Loading plugin PHPCSStandards\Composer\Plugin\Installers\PHPCodeSniffer\Plugin_composer_tmp0 (from dealerdirect/phpcodesniffer-composer-installer, installed globally)
Loading plugin Symfony\Thanks\Thanks_composer_tmp1 (from enumag/no-thanks, installed globally)
Reading /var/lib/wwwrun/.cache/composer/repo/https---repo.packagist.org/packages.json from cache
Downloading https://repo.packagist.org/packages.json if modified
[200] https://repo.packagist.org/packages.json
Writing /var/lib/wwwrun/.cache/composer/repo/https---repo.packagist.org/packages.json into cache
Reading /var/lib/wwwrun/.cache/composer/repo/https---repo.packagist.org/provider-drupal~recommended-project.json from cache
Downloading https://repo.packagist.org/p2/drupal/recommended-project.json if modified
[304] https://repo.packagist.org/p2/drupal/recommended-project.json
Installing drupal/recommended-project (11.1.0)
Reading /var/lib/wwwrun/.cache/composer/files/drupal/recommended-project/2f839695071013c63418691310a8fcebf73fb5a8.zip from cache
- Loading drupal/recommended-project (11.1.0) from cache
- Installing drupal/recommended-project (11.1.0): Extracting archive
Executing async command (CWD): '/usr/bin/unzip' '-qq' '/srv/my.app/drupal/my.app/vendor/composer/tmp-98e2be5d68de2a710c413920df0e7f21.zip' '-d' '/srv/my.app/drupal/my.app/vendor/composer/28beb40a'
Executing async command (CWD): 'rm' '-rf' '/srv/my.app/drupal/my.app/vendor/composer/28beb40a'
Downloading https://packagist.org/downloads/
[201] https://packagist.org/downloads/
Created project in /srv/my.app/drupal/my.app
Reading ./composer.json (/srv/my.app/drupal/my.app/composer.json)
Loading config file /var/lib/wwwrun/.config/composer/config.json
Loading config file /var/lib/wwwrun/.config/composer/auth.json
Loading config file ./composer.json (/srv/my.app/drupal/my.app/composer.json)
Reading /var/lib/wwwrun/.config/composer/composer.json
Loading config file /var/lib/wwwrun/.config/composer/config.json
Loading config file /var/lib/wwwrun/.config/composer/auth.json
Loading config file /var/lib/wwwrun/.config/composer/composer.json (/var/lib/wwwrun/.config/composer/composer.json)
Loading config file /var/lib/wwwrun/.config/composer/auth.json
Reading /var/lib/wwwrun/.config/composer/auth.json
Reading /var/lib/wwwrun/.config/composer/vendor/composer/installed.json
Loading plugin PHPCSStandards\Composer\Plugin\Installers\PHPCodeSniffer\Plugin_composer_tmp2 (from dealerdirect/phpcodesniffer-composer-installer, installed globally)
webd
composer require drush/drush
drush site-install standard -y \
--db-url="${_THIS_DB_URL}" \
--db-prefix="pfx_" \
--locale=en \
--account-mail="${_ADMIN_EMAIL}" \
--account-name=${_ADMIN_USR} \
--account-pass=$(_ADMIN_PASS) \
--site-name="${_SITE_NAME}" \
--site-mail="${_SITE_EMAIL}" \
--sites-subdir="${_SITE_DIR}" \
install_configure_form.enable_update_status_emails=NULL
composer update
composer require vlucas/phpdotenv --ignore-platform-req=ext-ctype -W
composer dump-autoload
cat << EOF > .env
APP_ENV=prod
EOF
cat << EOF > .env.local
APP_ENV=dev
EOF
cat << EOF > .env.dev.local
TEST_ENV_VAR='blah'
EOF
(switch to manual DB settings, as `drush` DB socket support is broken)
EDIT web/sites/default/settings.php
<?php
\$dotenv = Dotenv\Dotenv::createImmutable(
__DIR__ . '/../../../',
[
'.env',
'.env.local',
'.env.dev.local',
'.env.prod.local',
],
false
);
$dotenv->safeLoad();
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
$config['system.logging']['error_level'] = 'verbose';
...
( ... project, site & DB settings and configs ...)
drush pm:uninstall dblog
drush pm:install syslog
composer require symfony/var-dumper
composer require drupal/redis:dev-1.x
drush pm:install redis
@ login/nav to --> https://example.com/admin/config/
FAILs, with similar error as reported
@berdir
> There is nothing redis specific about this
other than it's seen when enabling redis.
> you yourself confirmed that it also happens without.
correct.
as i'd done when seeing/reporting it with other module(s) @ core ...
... until it was moved to the module queue by another developer.
it'll be at some point helpul if some dev considers all the various instances of this TypeError and can provide some reasonable guidance of where to post this other than 'not here' and 'closing' ...
unfortunately nothing more to elaborate.
all i have is the trace, above, and the ability to reproduce it -- here.
there's more detail here,
https://www.drupal.org/project/composer_deploy/issues/3495587 🐛 fatal error on `update` module enable on composer-managed D11.1.0 instance Active
this "TypeError: Cannot access offset of type Drupal\Core\StringTranslation\TranslatableMarkup" is appearing in lots of reports for different modules. e.g.,
https://www.drupal.org/project/drupal/issues/3467538
🐛
Cannot access offset of type Drupal\Core\StringTranslation\TranslatableMarkup in isset or empty in Drupal\update\ProjectCoreCompatibility->getPossibleCoreUpdateVersions
Active
https://www.drupal.org/project/drupal/issues/3475505
🐛
Changes in site building process can run into Cannot access offset of type StringTranslation\TranslatableMarkup on field creation path
Active
https://www.drupal.org/project/butils/issues/3486979
🐛
TypeError: Cannot access offset of type Drupal\Core\StringTranslation\TranslatableMarkup in isset or empty in
Active
...
i've found no consistent cause here, yet.
seems like it is a common issue ... in core? but, @cliefen chose to assign it to the module issue queue instead in https://www.drupal.org/project/composer_deploy/issues/3495587 🐛 fatal error on `update` module enable on composer-managed D11.1.0 instance Active
so, when i see it with redis mod, reported it here.
fyi, yet another instance, different module,
https://www.drupal.org/project/redis/issues/3496126 🐛 reproducible FATAL TypeError on Redis install in D11 Active
pgndrupal → created an issue.
@cliefen
i note your reassignment.
fyi, now on another install, with NO attempt to install composer_deploy at all
The website encountered an unexpected error. Try again later.
TypeError: Cannot access offset of type Drupal\Core\StringTranslation\TranslatableMarkup in isset or empty in Drupal\update\ProjectCoreCompatibility->getPossibleCoreUpdateVersions() (line 83 of core/modules/update/src/ProjectCoreCompatibility.php).
Drupal\update\ProjectCoreCompatibility->__construct(Array, Array, Array) (Line: 106)
update_calculate_project_data(Array) (Line: 40)
update_requirements('runtime')
call_user_func_array('\update_requirements', Array) (Line: 355)
Drupal\Core\Extension\ModuleHandler->{closure:Drupal\Core\Extension\ModuleHandler::invokeAll():354}('\update_requirements', 'update') (Line: 307)
Drupal\Core\Extension\ModuleHandler->invokeAllWith('requirements', Object) (Line: 354)
Drupal\Core\Extension\ModuleHandler->invokeAll('requirements', Array) (Line: 109)
Drupal\system\SystemManager->listRequirements() (Line: 93)
Drupal\system\SystemManager->checkRequirements() (Line: 122)
...
it's again on an early stage install. don't yet know WHY it's occurring, but can say -- on this instance -- there's NO composer_deploy.
i simply don't know what the cause is. `composer_deploy` is reproducibly involved with the issue.
but does NOT seem to be the sole module in play here ....
on a new iteration of D11 install, with fewer overall added modules,
Core Announcements (announcements_feed) Enabled 11.1.0
Core Automated Cron (automated_cron) Enabled 11.1.0
Core BigPipe (big_pipe) Enabled 11.1.0
Core Block (block) Enabled 11.1.0
Core Block Content (block_content) Enabled 11.1.0
Core Breakpoint (breakpoint) Enabled 11.1.0
Core CKEditor 5 (ckeditor5) Enabled 11.1.0
Core Comment (comment) Enabled 11.1.0
Core Configuration Manager (config) Enabled 11.1.0
Core Contact (contact) Enabled 11.1.0
Core Contextual Links (contextual) Enabled 11.1.0
Field types Datetime (datetime) Enabled 11.1.0
Core Database Logging (dblog) Enabled 11.1.0
Core Internal Dynamic Page Cache (dynamic_page_cache) Enabled 11.1.0
Core Text Editor (editor) Enabled 11.1.0
Core Field (field) Enabled 11.1.0
Core Field UI (field_ui) Enabled 11.1.0
Field types File (file) Enabled 11.1.0
Core Filter (filter) Enabled 11.1.0
Core Help (help) Enabled 11.1.0
Core History (history) Enabled 11.1.0
Field types Image (image) Enabled 11.1.0
Field types Link (link) Enabled 11.1.0
Core Custom Menu Links (menu_link_content) Enabled 11.1.0
Core Menu UI (menu_ui) Enabled 11.1.0
Core MySQL (mysql) Enabled 11.1.0
Core Node (node) Enabled 11.1.0
Field types Options (options) Enabled 11.1.0
Core Internal Page Cache (page_cache) Enabled 11.1.0
Core Path (path) Enabled 11.1.0
Core Path alias (path_alias) Enabled 11.1.0
Core Search (search) Enabled 11.1.0
Core Shortcut (shortcut) Enabled 11.1.0
Core System (system) Enabled 11.1.0
Core Taxonomy (taxonomy) Enabled 11.1.0
Field types Text (text) Enabled 11.1.0
Core Toolbar (toolbar) Enabled 11.1.0
Core Update Manager (update) Enabled 11.1.0
Core User (user) Enabled 11.1.0
Core Views (views) Enabled 11.1.0
Core Views UI (views_ui) Enabled 11.1.0
Other Composer Deploy (composer_deploy) Enabled 8.x-1.10
Core Claro (claro) Enabled 11.1.0
Core Olivero (olivero) Enabled 11.1.0
in particular
drush pm:list | grep -i deploy
Other Composer Deploy (composer_deploy) Enabled 8.x-1.10
composer show | grep -i deploy
drupal/composer_deploy 1.10.0 Provide version number from composers lockfile.
@ nav to:
https://example.com/admin/config
now get another TypeError, tho different,
The website encountered an unexpected error. Try again later.
TypeError: Cannot access offset of type Drupal\Core\StringTranslation\TranslatableMarkup in isset or empty in Drupal\update\ProjectSecurityData->getCoverageInfo() (line 126 of core/modules/update/src/ProjectSecurityData.php).
update_requirements('runtime')
call_user_func_array('\update_requirements', Array) (Line: 355)
Drupal\Core\Extension\ModuleHandler->{closure:Drupal\Core\Extension\ModuleHandler::invokeAll():354}('\update_requirements', 'update') (Line: 307)
Drupal\Core\Extension\ModuleHandler->invokeAllWith('requirements', Object) (Line: 354)
Drupal\Core\Extension\ModuleHandler->invokeAll('requirements', Array) (Line: 109)
Drupal\system\SystemManager->listRequirements() (Line: 93)
Drupal\system\SystemManager->checkRequirements() (Line: 122)
Drupal\system\Controller\SystemController->overview('system.admin_config')
call_user_func_array(Array, Array) (Line: 123)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->{closure:Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber::wrapControllerExecutionInRenderContext():121}() (Line: 593)
Drupal\Core\Render\Renderer->executeInRenderContext(Object, Object) (Line: 121)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->wrapControllerExecutionInRenderContext(Array, Array) (Line: 97)
Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber->{closure:Drupal\Core\EventSubscriber\EarlyRenderingControllerWrapperSubscriber::onController():96}() (Line: 183)
Symfony\Component\HttpKernel\HttpKernel->handleRaw(Object, 1) (Line: 76)
Symfony\Component\HttpKernel\HttpKernel->handle(Object, 1, 1) (Line: 53)
Drupal\Core\StackMiddleware\Session->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\KernelPreHandle->handle(Object, 1, 1) (Line: 28)
Drupal\Core\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 32)
Drupal\big_pipe\StackMiddleware\ContentLength->handle(Object, 1, 1) (Line: 116)
Drupal\page_cache\StackMiddleware\PageCache->pass(Object, 1, 1) (Line: 90)
Drupal\page_cache\StackMiddleware\PageCache->handle(Object, 1, 1) (Line: 48)
Drupal\Core\StackMiddleware\ReverseProxyMiddleware->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\NegotiationMiddleware->handle(Object, 1, 1) (Line: 36)
Drupal\Core\StackMiddleware\AjaxPageState->handle(Object, 1, 1) (Line: 51)
Drupal\Core\StackMiddleware\StackedHttpKernel->handle(Object, 1, 1) (Line: 709)
Drupal\Core\DrupalKernel->handle(Object) (Line: 19)
repeating
drush pm:uninstall composer_deploy
composer remove drupal/composer_deploy
drush cr
systemctl restart php-fpm nginx
cures it locally, again.
nav to:
https://example.com/admin/config
works fine.
re:
-- Backup: Use drush archive:dump to back up everything into a single file.
-- Restore: Use drush archive:restore to restore everything from the single file.
note, with
drush version
Drush version : 13.3.3.0
drush archive:restore --help
archive:restore has been removed. A replacement may be available from your web host.
checking
https://www.drush.org/13.x/commands/archive_dump --> EXISTS
https://www.drush.org/13.x/commands/archive_restore --> MISSING
but,
https://www.drush.org/12.x/commands/archive_restore/ --> EXISTS
seems archive:restore has been removed
https://github.com/drush-ops/drush/pull/5927
https://github.com/drush-ops/drush/pull/5927/commits/75e2c86906760c6f184...
also, for reference
https://docs.acquia.com/acquia-cloud-platform/create-apps/import/archive
"Note
This method is deprecated due to the removal of archive commands in recent versions of Drush. See Importing manually instead."
> what is the use-case
ok, i'm the wrong person to comment -- too new to speak to Drupal-at-large.
best i can confirm is that the MR workaround works, in this case, to solve the coexistence of update and composer_deploy.
whether that's the _right_ fix, got me atm; @godotislate would be a more reliable source. and, whether or not this moves to module queue ...
if the same/similar _error_ surfaces here under difference circumstances, i'll add/open as needed.
> separate matter
+1
> move this issue
i'm fairly sure -- not 100% -- i've seen these TypeErrors crop up elsewhere, before i composer installed composer_deploy.
but i've been only been able to reproduce it reliably in this case.
the 'hardening fix' in #15 appears to work in this case -- but appears more general.
if the fix _is_ sane, shouldn't it be applied in core, not 'just' in composer_deploy?
fwiw, confirming
drush core-status | grep -i version
Drupal version : 11.1.0 <--- release, not dev branch
PHP version : 8.4.2
Drush version : 13.3.3.0
pushd web
curl -s https://git.drupalcode.org/project/drupal/-/merge_requests/10669.diff | patch -p1
patching file core/modules/update/src/ProjectCoreCompatibility.php
popd
composer require drupal/composer_deploy
drush pm:install composer_deploy
drush pm:list | grep -iE "deploy|update"
Core Update Manager (update) Enabled 11.1.0
Other Composer Deploy (composer_deploy) Enabled 8.x-1.10
no more FATAL error, so far. the two mods can coexist.
@ status report, i DO see now/still,
Warnings found
Drupal core update status
No update data available
No update information available. Run cron or check manually.
as above
drush pm:install update
drush pm:uninstall composer_deploy
*AND*
composer remove composer_deploy
drush cr
composer show | grep -iE "deploy|update"
(empty)
drush pm:list | grep -iE "deploy|update"
Core Update Manager (update) Enabled 11.1.0
now, NO WSOD error at /admin/*; poking around the site, can't atm get it to replicate.
if not a fluke, `drush pm:install` does not seem sufficient?
also, now, checking status report @ https://example.com/admin/reports/status#warning ,
1 warning
Drupal core update status
No update data available
No update information available. Run cron or check manually.
Cron maintenance tasks
Last run 3 seconds ago
(more information)
re-exec'ing cron doesn't cure.
i can't find it in my scribbled notes atm, but iirc, composer_deploy was supposed to solve for the missing update info in a composer-installed Drupal instance
it was already happening prior to `composer_deploy` installation; i'd installed that while attempting to deal with this.
that said, specifically,
drush pm:uninstall composer_deploy
drush pm:install composer_deploy
and, immediately, at nav to `https://dev.pgnetwork.net/admin/config`
The website encountered an unexpected error. Try again later.
TypeError: Cannot access offset of type Drupal\Core\StringTranslation\TranslatableMarkup in isset or empty in Drupal\update\ProjectCoreCompatibility->getPossibleCoreUpdateVersions() (line 83 of core/modules/update/src/ProjectCoreCompatibility.php).
...
yes, there are.
no, i've not been able to bisect.
fwiw, in this specific instance here:
Core Announcements (announcements_feed) Enabled 11.1.0
Core BigPipe (big_pipe) Enabled 11.1.0
Core Block (block) Enabled 11.1.0
Core Block Content (block_content) Enabled 11.1.0
Core Breakpoint (breakpoint) Enabled 11.1.0
Core CKEditor 5 (ckeditor5) Enabled 11.1.0
Core Comment (comment) Enabled 11.1.0
Core Configuration Manager (config) Enabled 11.1.0
Core Contact (contact) Enabled 11.1.0
Core Contextual Links (contextual) Enabled 11.1.0
Field types Datetime (datetime) Enabled 11.1.0
Core Database Logging (dblog) Enabled 11.1.0
Core Internal Dynamic Page Cache (dynamic_page_cache) Enabled 11.1.0
Core Text Editor (editor) Enabled 11.1.0
Core Field (field) Enabled 11.1.0
Core Field UI (field_ui) Enabled 11.1.0
Field types File (file) Enabled 11.1.0
Core Filter (filter) Enabled 11.1.0
Core Help (help) Enabled 11.1.0
Core History (history) Enabled 11.1.0
Field types Image (image) Enabled 11.1.0
Field types Link (link) Enabled 11.1.0
Core Custom Menu Links (menu_link_content) Enabled 11.1.0
Core Menu UI (menu_ui) Enabled 11.1.0
Core MySQL (mysql) Enabled 11.1.0
Core Node (node) Enabled 11.1.0
Field types Options (options) Enabled 11.1.0
Core Internal Page Cache (page_cache) Enabled 11.1.0
Core Path (path) Enabled 11.1.0
Core Path alias (path_alias) Enabled 11.1.0
Core Search (search) Enabled 11.1.0
Core Shortcut (shortcut) Enabled 11.1.0
Core System (system) Enabled 11.1.0
Core Taxonomy (taxonomy) Enabled 11.1.0
Field types Text (text) Enabled 11.1.0
Core Toolbar (toolbar) Enabled 11.1.0
Core Update Manager (update) Disabled 11.1.0
Core User (user) Enabled 11.1.0
Core Views (views) Enabled 11.1.0
Core Views UI (views_ui) Enabled 11.1.0
Administration Admin Toolbar (admin_toolbar) Enabled 3.5.1
Administration Admin Toolbar Search (admin_toolbar_search) Enabled 3.5.1
Administration Admin Toolbar Extra Tools (admin_toolbar_tools) Enabled 3.5.1
Other Composer Deploy (composer_deploy) Enabled 8.x-1.10
Development Devel (devel) Enabled 5.3.1
Encryption Encrypt (encrypt) Enabled 8.x-3.2
Spam control Honeypot (honeypot) Enabled 2.2.0
Security Key (key) Enabled 8.x-1.19
Mail Mail System (mailsystem) Enabled 8.x-4.5
Other Pathauto (pathauto) Enabled 8.x-1.13
Other Redirect (redirect) Enabled 8.x-1.10
Performance Redis (redis) Enabled 8.x-1.8+3-dev
Security Security Review (security_review) Enabled 3.1.1
Mail SMTP Authentication Support (smtp) Enabled 8.x-1.4
Security Sodium (sodium) Enabled 3.0.0
Security Two-factor Authentication (TFA) (tfa) Enabled 8.x-1.9
Other Token (token) Enabled 8.x-1.15
Webform Webform Devel (webform_devel) Enabled 6.3.0-alpha3+7-dev
Webform Webform UI (webform_ui) Enabled 6.3.0-alpha3+7-dev
Webform Webform (webform) Enabled 6.3.0-alpha3+7-dev
Core Claro (claro) Enabled 11.1.0
Core Olivero (olivero) Enabled 11.1.0
with _that_ simply enabling `udpate` causes the error.
the only logs i've seen, i've shared.
> This issue has a stack trace. The other does not.
+1
> Neither has steps to reproduce.
the `drush pm:install update` step is all that's needed to reproduce the behavior, _here_. leaving it UNINSTALLED (i.e., disabled) cures it here ...
i understand you're looking for something that can be reproduced _elsewhere_; i don't have that atm.
i notice that `TranslatableMarkup` seems to be common, at least in some. no idea yet if that's a red-herring or not.
@cliefen
> 3495587 ... doesn't have a stack trace
the OP here is with
```
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
$config['system.logging']['error_level'] = 'verbose';
```
what specifically are you looking for beyond that? an `strace`? other?
re: 3135663, i'm not on a dev release of core (that was the only option I had in the dropdown). rather i'm on 11.1.0 *release*.
i _do_ keep bumping into these TypeError issues -- so far, somewhat randomly & intermittently (e.g., https://www.drupal.org/project/drupal/issues/3467538#comment-15901089 🐛 Cannot access offset of type Drupal\Core\StringTranslation\TranslatableMarkup in isset or empty in Drupal\update\ProjectCoreCompatibility->getPossibleCoreUpdateVersions Active ).
atm, in my current state, _this_ is fully repeatable/reproducible, here.
dunno what specific info's helpful; can grab if asked.
pgndrupal → created an issue.
pgndrupal → created an issue.
not clear what the `mkdir` point you're making is ... (pre)creating the dir doesn't appear to help.
this fails/failed even IF the dir exists -- separately/previously created -- as above in #11
the solution is to have Drupal write it's "tempfile" to OTHER than non-allowed `/tmp`.
either to a different mount path, or _somehow_ by pointing Drupal at the systemd-generated namespaced dynamic /tmp path.
or, of course, turning OFF `PrivateTmp=true`
@cmlara
indeed!
in `/etc/systemd/system/php-fpm.service`
i've
[Service]
PrivateTmp=true
if
- PrivateTmp=true
+ #PrivateTmp=true
then Drupal's happy with the tempfile location in `/tmp/drupal/**/*`!
`php-fpm.service` does NOT have a specified `User=/Group=`
but DOES launch as
ExecStart=/usr/sbin/php-fpm \
--nodaemonize \
--pid /run/nginx/php-fpm.pid \
--fpm-config /usr/local/etc/php8/php-fpm.conf \
-c /usr/local/etc/php8/php.ini
where
cat /usr/local/etc/php8/php-fpm.conf
...
[www]
user = wwwrun
group = www
listen = /run/nginx/php-fpm.sock
listen.owner = wwwrun
listen.group = www
listen.mode = 0660
...
so
ps aux | grep php-fpm
root 35046 0.0 0.0 697120 43896 ? Ss 22:11 0:00 php-fpm: master process (/usr/local/etc/php8//php-fpm.conf)
wwwrun 35054 0.0 0.0 697120 19416 ? S 22:11 0:00 php-fpm: pool www
wwwrun 35055 0.0 0.0 697120 15040 ? S 22:11 0:00 php-fpm: pool www
wwwrun 35056 0.0 0.0 697120 15168 ? S 22:11 0:00 php-fpm: pool www
wwwrun 35057 0.0 0.0 697120 15168 ? S 22:11 0:00 php-fpm: pool www
wwwrun 35058 0.0 0.0 697120 15168 ? S 22:11 0:00 php-fpm: pool www
if i
- #PrivateTmp=true
+ PrivateTmp=true
and
eval echo "~wwwrun"
/var/lib/wwwrun
edit settings.php`
...
$settings = [
...$settings,
- 'file_temp_path' => '/tmp/drupal/mysite',
+ 'file_temp_path' => '/var/lib/wwwrun/tmp/drupal/mysite',
],
...
then it also works, despite the 'correct' ownership of `/tmp/drupal/mysite`.
which sure seems like it's a namespace issue, as a result of that `PrivateTmp=true`.
reading,
https://www.freedesktop.org/software/systemd/man/latest/systemd.exec.htm...
i'm unclear whether i can 'fix' the issue for Drupal, leaving the (some?) `PrivateTmp=` protection in place.
i need to take a closer look @ `JoinsNamespaceOf=` ...
i've not had an issue with php-fpm service's `PrivateTmp=true` with any other service using php-fpm.
i don't know if this is, or isn't, intended behavior in Drupal.
@cliefen
> Then browse to https://example.com/test.php. This would be a basic test that doesn't use a stream wrapper. What happens?
rm -rf /tmp/drupal
mkdir -p /tmp/drupal/mysite
find /tmp/drupal -type d -exec chmod 750 {} \; -exec chown wwwrun:www {} \;
cat /srv/my.app/web/test.php
<?php
if (file_put_contents('/tmp/drupal/mysite/foobar.txt', 'test') === FALSE) {
throw new \Exception("Temporary file could not be created.");
} else {
echo "Temp file created";
}
sudo -u wwwrun php /srv/my.app/web/test.php
Temp file created
tree -Csup /tmp/drupal/
[drwxr-x--- wwwrun 60] /tmp/drupal/
└── [drwxr-x--- wwwrun 60] mysite
└── [-rw-r--r-- wwwrun 4] foobar.txt
cat /tmp/drupal/mysite/foobar.txt
test
rm -f /tmp/drupal/mysite/foobar.txt
nav to: https://example.com/test.php
==> /var/log/nginx/php-fpm-www.log <==
[20-Dec-2024 21:43:44 America/New_York] PHP Warning: file_put_contents(/tmp/drupal/mysite/foobar.txt): Failed to open stream: No such file or directory in /srv/my.app/web/test.php on line 3
[20-Dec-2024 21:43:44 America/New_York] PHP Fatal error: Uncaught Exception: Temporary file could not be created. in /srv/my.app/web/test.php:4
Stack trace:
#0 {main}
thrown in /srv/my.app/web/test.php on line 4
seems that `drush key:save` creates the key, 'pointing' to a file location.
it does NOT apparently create the file.
creating / populating that file requires the separate `dd = ...` step.
with a new D11 v11.1.0 install,
i see in generated assets,
ls -1 web/sites/default/files/css/ | sort | head -n 6
css_1A5CXfNop7cNp-NPI4DF_OGMQem-KN6lxj_k9OzGOpU.css
css_1A5CXfNop7cNp-NPI4DF_OGMQem-KN6lxj_k9OzGOpU.css.gz
css_1ecH70dXxW6SrorXnALqr-8DiJZhZ4g3Y6cBbPZOuEc.css
css_1ecH70dXxW6SrorXnALqr-8DiJZhZ4g3Y6cBbPZOuEc.css.gz
css_1TuJBQ_3nvA_oZ-1Bd-SoJw7dHab08LO29K2pikMvXw.css
css_1TuJBQ_3nvA_oZ-1Bd-SoJw7dHab08LO29K2pikMvXw.css.gz
...
, no brotli (.br)
checking,
cat ./web/core/modules/system/config/install/system.performance.yml (yaml) cache:
page:
max_age: 0
css:
preprocess: true
gzip: true
fast_404:
enabled: true
paths: '/\.(?:txt|png|gif|jpe?g|css|js|ico|swf|flv|cgi|bat|pl|dll|exe|asp)$/i'
exclude_paths: '/\/(?:styles|imagecache)\//'
html: '<!DOCTYPE html><html><head><title>404 Not Found</title></head><body><h1>Not Found</h1><p>The requested URL "@path" was not found on this server.</p></body></html>'
js:
preprocess: true
gzip: true
status here says "Needs work", and "Remaining tasks: I will submit a patch."
the MR, #9980 submitted a month ago, is "Ready to merge" and "1 commit will be added to 11.x".
but has not been merged.
@prudloff
what's outstanding?
what release can this be expected in?
pgndrupal → created an issue.
pgndrupal → created an issue.
this is consistently reproducible here across multiple instances -- different hardware, Drupal installs, persons doing the work.
for us, it's only an issue -- temp space usags on tmpfs -- with Drupal installs.
we have a working 'fix' -- don't use tmpfs with Drupal.
if that's considered a 'support request', and functions "as intended", n/p & noted; pls feel free to close this.
@cilefen
> It looks like a permissions issue or that the directory is totally unreachable by the web server process.
it doesn't look like a permissions issue to me.
and, the directory is demonstrably reachable -- for read & write -- by the web server process.
just, atm, not by D11.
no se linux. no app armor.
it's not perms.
no combination of dir perms (777, 775, 770, etc) of any/all of the path dirs in `/tmp/drupal/mysite` makes any difference -- same error.
sticky bit on the dir makes no diff, either.
checking, any other app running as same user/group (wwwrun:www) under same webserver (nginx) -- namely wordpress, symfony/sulu, joomla, own site, etc -- that needs/uses /tmp space, can be pointed at that same dir, `/tmp/drupal/mysysite`, with no issues.
D11, using that `/tmp/**/*` path, consistenly reports the error as reported.
BUT ...
moving /tmp space to any *other* top-dir location -- e.g., /var/lib/wwwrun/tmp ``` works just fine.
no error reported, atm.
what's "different" and common here about `/tmp`, is that it's a shared memory mount:
mount | grep "/tmp"
tmpfs on /tmp type tmpfs (rw,nosuid,nodev,nr_inodes=1048576,inode64)
it appears that tmpfs makes it unhappy.
now as to why, dunno yet. afaik, `saveData()` _shouldn't_ have any issues with tmpfs or not.
looking online for any relevant or related issues/bugs hasn't borne fruit. yet.
pgndrupal → created an issue.
i'm seeing a fair number of these at links from /admin. e.g., @ https://example.com/admin/config
similar as above,
The website encountered an unexpected error. Try again later.
TypeError: Cannot access offset of type Drupal\Core\StringTranslation\TranslatableMarkup in isset or empty in Drupal\update\ProjectCoreCompatibility->getPossibleCoreUpdateVersions() (line 83 of core/modules/update/src/ProjectCoreCompatibility.php).
Drupal\update\ProjectCoreCompatibility->__construct(Array, Array, Array) (Line: 107)
update_calculate_project_data(Array) (Line: 40)
update_requirements('runtime')
call_user_func_array(Object, Array) (Line: 416)
Drupal\Core\Extension\ModuleHandler->{closure:Drupal\Core\Extension\ModuleHandler::invokeAll():415}(Object, 'update') (Line: 395)
...
@dqd, it's "still the case" ... on a locally managed instance,
distro
Name: Fedora Linux 41 (Forty One)
Version: 41
Codename:
nginx -v
nginx version: nginx/1.27.3 (local build)
php -v
PHP 8.4.1 (cli) (built: Nov 20 2024 09:48:35) (NTS gcc x86_64)
Copyright (c) The PHP Group
Built by Remi's RPM repository <https://rpms.remirepo.net/> #StandWithUkraine
Zend Engine v4.4.1, Copyright (c) Zend Technologies
with Zend OPcache v8.4.1, Copyright (c), by Zend Technologies
with Xdebug v3.4.0, Copyright (c) 2002-2024, by Derick Rethans
here, it's Drupal 11, composer installed, drush site-installed & managed
drush status
Drupal version : 11.0.9
Site URI : http://default
DB driver : mysql
DB port :
DB username : my_user
DB name : mysite_drupal
Database : Connected
Drupal bootstrap : Successful
Default theme : olivero
Admin theme : claro
PHP binary : /usr/bin/php
PHP config : /usr/local/etc/php8/php.ini
PHP OS : Linux
PHP version : 8.4.1
Drush script : /srv/my.app/vendor/bin/drush.php
Drush version : 13.3.3.0
Drush temp : /tmp
Drush configs : /srv/my.app/vendor/drush/drush/drush.yml
Install profile : standard
Drupal root : /srv/my.app/web
Site path : sites/default
Files, Public : sites/default/files
Files, Private : /srv/drupal/private
Files, Temp : /tmp/drupal/mysite
i'm seeing a fair number of these as well at links from /admin. e.g., @ https://example.com/admin/config
similar as above,
The website encountered an unexpected error. Try again later.
TypeError: Cannot access offset of type Drupal\Core\StringTranslation\TranslatableMarkup in isset or empty in Drupal\update\ProjectCoreCompatibility->getPossibleCoreUpdateVersions() (line 83 of core/modules/update/src/ProjectCoreCompatibility.php).
Drupal\update\ProjectCoreCompatibility->__construct(Array, Array, Array) (Line: 107)
update_calculate_project_data(Array) (Line: 40)
update_requirements('runtime')
call_user_func_array(Object, Array) (Line: 416)
Drupal\Core\Extension\ModuleHandler->{closure:Drupal\Core\Extension\ModuleHandler::invokeAll():415}(Object, 'update') (Line: 395)
...
@dqd, it's "still the case" ... on a locally managed instance,
distro
Name: Fedora Linux 41 (Forty One)
Version: 41
Codename:
nginx -v
nginx version: nginx/1.27.3 (local build)
php -v
PHP 8.4.1 (cli) (built: Nov 20 2024 09:48:35) (NTS gcc x86_64)
Copyright (c) The PHP Group
Built by Remi's RPM repository <https://rpms.remirepo.net/> #StandWithUkraine
Zend Engine v4.4.1, Copyright (c) Zend Technologies
with Zend OPcache v8.4.1, Copyright (c), by Zend Technologies
with Xdebug v3.4.0, Copyright (c) 2002-2024, by Derick Rethans
here, it's Drupal 11, composer installed, drush site-installed & managed
drush status
Drupal version : 11.0.9
Site URI : http://default
DB driver : mysql
DB port :
DB username : my_user
DB name : mysite_drupal
Database : Connected
Drupal bootstrap : Successful
Default theme : olivero
Admin theme : claro
PHP binary : /usr/bin/php
PHP config : /usr/local/etc/php8/php.ini
PHP OS : Linux
PHP version : 8.4.1
Drush script : /srv/my.app/vendor/bin/drush.php
Drush version : 13.3.3.0
Drush temp : /tmp
Drush configs : /srv/my.app/vendor/drush/drush/drush.yml
Install profile : standard
Drupal root : /srv/my.app/web
Site path : sites/default
Files, Public : sites/default/files
Files, Private : /srv/drupal/private
Files, Temp : /tmp/drupal/mysite
seeing a fair number of these at links from /admin. e.g., @ https://example.com/admin/config
similar as above,
```
The website encountered an unexpected error. Try again later.
TypeError: Cannot access offset of type Drupal\Core\StringTranslation\TranslatableMarkup in isset or empty in Drupal\update\ProjectCoreCompatibility->getPossibleCoreUpdateVersions() (line 83 of core/modules/update/src/ProjectCoreCompatibility.php).
Drupal\update\ProjectCoreCompatibility->__construct(Array, Array, Array) (Line: 107)
update_calculate_project_data(Array) (Line: 40)
update_requirements('runtime')
call_user_func_array(Object, Array) (Line: 416)
Drupal\Core\Extension\ModuleHandler->{closure:Drupal\Core\Extension\ModuleHandler::invokeAll():415}(Object, 'update') (Line: 395)
...
```
@dqd, it's "still the case" ... on a locally managed instance,
```
distro
Name: Fedora Linux 41 (Forty One)
Version: 41
Codename:
nginx -v
nginx version: nginx/1.27.3 (local build)
php -v
PHP 8.4.1 (cli) (built: Nov 20 2024 09:48:35) (NTS gcc x86_64)
Copyright (c) The PHP Group
Built by Remi's RPM repository #StandWithUkraine
Zend Engine v4.4.1, Copyright (c) Zend Technologies
with Zend OPcache v8.4.1, Copyright (c), by Zend Technologies
with Xdebug v3.4.0, Copyright (c) 2002-2024, by Derick Rethans
```
here, it's Drupal 11, composer installed, drush site-installed & managed
```
drush status
Drupal version : 11.0.9
Site URI : http://default
DB driver : mysql
DB port :
DB username : my_user
DB name : mysite_drupal
Database : Connected
Drupal bootstrap : Successful
Default theme : olivero
Admin theme : claro
PHP binary : /usr/bin/php
PHP config : /usr/local/etc/php8/php.ini
PHP OS : Linux
PHP version : 8.4.1
Drush script : /srv/my.app/vendor/bin/drush.php
Drush version : 13.3.3.0
Drush temp : /tmp
Drush configs : /srv/my.app/vendor/drush/drush/drush.yml
Install profile : standard
Drupal root : /srv/my.app/web
Site path : sites/default
Files, Public : sites/default/files
Files, Private : /srv/drupal/private
Files, Temp : /tmp/drupal/mysite
```