Gestern Abend wollte ich 2 Shops auf 6.7.16 updaten - beide Updates sind fehlgeschlagen. Bei einem Shop wegen irgendwelchen Feature Flags bezogen auf V6_5_0_0, und der andere Shop wegen PayPal (war aber nicht aktiv). Die Updates sind also mit Vorsicht zu genießen. Genauer Fehlermeldungen habe ich leider keine mehr - es war 23 Uhr und ich war nur noch genervt.
2026-11-03T09:12:12+00:00 [critical] Uncaught Exception: Invalid type for path "shopware.feature.flags.JSON_LD_DATA.major". Expected "string", but got "bool".
Muss man natürlich vorher wissen, ggf. seine z-shopware.yaml anzupasen.
Ich hätte dann noch solche Fehlermeldungen im Angebot:
React\Promise\Promise::{closure:{closure:React\Promise\Promise::resolver():172}:173}() at phar:///var/.../public/shopware-installer.phar.php/vendor/react/promise/src/Promise.php:222
React\Promise\Promise->settle() at phar:///var/.../public/shopware-installer.phar.php/vendor/react/promise/src/Promise.php:287
React\Promise\Promise::{closure:React\Promise\Promise::call():285}() at phar:///var/.../public/shopware-installer.phar.php/vendor/react/promise/src/Internal/FulfilledPromise.php:47
React\Promise\Internal\FulfilledPromise->then() at phar:///var/.../public/shopware-installer.phar.php/vendor/react/promise/src/Promise.php:181
React\Promise\Promise::{closure:{closure:React\Promise\Promise::resolver():172}:173}() at phar:///var/.../public/shopware-installer.phar.php/vendor/react/promise/src/Promise.php:222
React\Promise\Promise->settle() at phar:///var/.../public/shopware-installer.phar.php/vendor/react/promise/src/Promise.php:287
React\Promise\Promise::{closure:React\Promise\Promise::call():285}() at n/a:n/a
call_user_func() at phar:///var/.../public/shopware-installer.phar.php/vendor/composer/composer/src/Composer/Util/ProcessExecutor.php:395
Composer\Util\ProcessExecutor->countActiveJobs() at phar:///var/.../public/shopware-installer.phar.php/vendor/composer/composer/src/Composer/Util/Loop.php:88
Composer\Util\Loop->wait() at phar:///var/.../public/shopware-installer.phar.php/vendor/composer/composer/src/Composer/Installer/InstallationManager.php:434
Composer\Installer\InstallationManager->waitOnPromises() at phar:///var/.../public/shopware-installer.phar.php/vendor/composer/composer/src/Composer/Installer/InstallationManager.php:409
Composer\Installer\InstallationManager->executeBatch() at phar:///var/.../public/shopware-installer.phar.php/vendor/composer/composer/src/Composer/Installer/InstallationManager.php:323
Composer\Installer\InstallationManager->downloadAndExecuteBatch() at phar:///var/.../public/shopware-installer.phar.php/vendor/composer/composer/src/Composer/Installer/InstallationManager.php:221
Composer\Installer\InstallationManager->execute() at phar:///var/.../public/shopware-installer.phar.php/vendor/composer/composer/src/Composer/Installer.php:876
Composer\Installer->doInstall() at phar:///var/.../public/shopware-installer.phar.php/vendor/composer/composer/src/Composer/Installer.php:686
Composer\Installer->doUpdate() at phar:///var/.../public/shopware-installer.phar.php/vendor/composer/composer/src/Composer/Installer.php:325
Composer\Installer->run() at phar:///var/.../public/shopware-installer.phar.php/vendor/composer/composer/src/Composer/Command/UpdateCommand.php:306
Composer\Command\UpdateCommand->execute() at phar:///var/.../public/shopware-installer.phar.php/vendor/symfony/console/Command/Command.php:341
Symfony\Component\Console\Command\Command->run() at phar:///var/.../public/shopware-installer.phar.php/vendor/symfony/console/Application.php:1094
Symfony\Component\Console\Application->doRunCommand() at phar:///var/.../public/shopware-installer.phar.php/vendor/symfony/console/Application.php:356
Symfony\Component\Console\Application->doRun() at phar:///var/.../public/shopware-installer.phar.php/vendor/composer/composer/src/Composer/Console/Application.php:457
Composer\Console\Application->doRun() at phar:///var/.../public/shopware-installer.phar.php/vendor/symfony/console/Application.php:195
Symfony\Component\Console\Application->run() at phar:///var/.../public/shopware-installer.phar.php/vendor/composer/composer/src/Composer/Console/Application.php:141
Composer\Console\Application->run() at phar:///var/.../public/shopware-installer.phar.php/vendor/composer/composer/bin/composer:113
include() at phar:///var/.../public/shopware-installer.phar.php/vendor/bin/composer:119
require() at /var/.../public/shopware-installer.phar.php:37
Der Shop war ein 6.7.15.1 erst kürzlich neu aufgesetzt.
Die Fehler, die du bis jetzt genannt hast, sind alles Konfigurationsfehler. Individuelle Konfigurationen. müssen eben mal angepasst, werden, vor allem wenn diese Jahre alt sind.
Und das letze ist keine Fehlermeldung, oder der wesentliche Part fehlt.
Da ist major klar ein String und kein bool. Weiß nicht was bei euch da nicht funktioniert, ich gehe aber davon aus, dass es ein „normaler“ yaml Konfigurationsfehler ist.
Das passt zu einer Änderung in 6.7.16.0: Bei den Feature Flags ist major kein true/false mehr, sondern die Version, zu der das Flag gehört. Im Core steht bei JSON_LD_DATA bis 6.7.15.1 major: true, ab 6.7.16.0 major: v6.8.0.0, so wie bei Max_Shop.
Shopware führt die Flags aus allen Config-Dateien nach Namen zusammen. Steht in deiner z-shopware.yaml unter shopware.feature.flags noch ein Eintrag mit major: true, überschreibt der den neuen Wert aus dem Core und die Prüfung schlägt fehl, daher „Expected string, but got bool“. Die Versions-Flags selbst (v6.5.0.0 usw.) dürfen gar kein major mehr haben. Das war vermutlich auch der Fehler mit V6_5_0_0 im ersten Shop.
Was hilft: in der z-shopware.yaml bei den Flags die major:-Zeilen rausnehmen. Wenn der Block nur aus einer alten feature.yaml kopiert ist und ihr da nichts umstellt kann er auch ganz weg, die Flags bringt der Core selbst mit. Danach Cache leeren (bin/console cache:clear) und das Update nochmal starten.
Steht so auch in den Releasenotes unter „Feature flags can belong to a major version“, aber da muss man erstmal drauf kommen.