wir haben aktuell ein Shopware System in der Version 6.6.4.1 am laufen und wollten dies auf die aktuellste Version 6.6.8.2 updaten. Beim Update, konkret beim Löschen des Caches kam ein Fehler 500 und das gesamte System stand.
Was wir getan haben:
Rollback auf das Backup vor dem Update
Dennoch kommt bei jedem Versuch, den Cache zu Löschen (Manuell, in Folge von Plugin Update, Deaktivierung etc.) immer ein Fehler 500.
Möchte man nun ein Plugin aktivieren kommt folgender Fehler:
Merkwürdig, die Fehlermeldung passt eigentlich genau auf eine config-Datei mit einem unbekannten Wert. Mal die prod_… bzw. dev_… Ordner unter cache von Hand löschen.
In einem 6.6.8.2 Testshop kommt „telemetry“ in einigen Cache-Dateien vor und ist anscheinend ein neuer gültiger Wert der Konfiguration. Es gibt auch den Ordner vendor/shopware/core/Framework/Telemetry. In einem 6.6.3.0 dagegen gibt es das noch nicht.
Wir haben aktuell ja noch die Version 6.6.4.1 am laufen.
Bei einem Update Versuch über den Composer kommen leider auch Fehler:
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. It is recommended that you run composer update or composer update .
Required package „symfony/runtime“ is in the lock file as „v7.1.7“ but that does not satisfy your constraint „^5.0|^6.0“.
Schon klar, aber Du wolltest ja auf die 6.6.8.2 und anscheinend ist davon noch irgendwas hängen geblieben… Schau mal in die composer.json im Hauptverzeichnis, welche Angabe da für runtime steht. Da müsste vermutlich das aus der Meldung stehen
wir haben aktuell ein Shopware System in der Version 6.6.4.1 am laufen und wollten dies auf die aktuellste Version 6.6.8.2 updaten. Beim Update, konkret beim Löschen des Caches kam ein Fehler 500 und das gesamte System stand.
Was wir getan haben:
Rollback auf das Backup vor dem Update
Dennoch kommt bei jedem Versuch, den Cache zu Löschen (Manuell, in Folge von Plugin Update, Deaktivierung etc.) immer ein Fehler 500.
Wir haben ebenfalls dasselbe Problem. Hat jemand eine Idee?
Ich bin mir gerade nicht sicher. Ich kann es auch nicht ausprobieren, da ansonsten die Fehlermeldung erscheint und wir ein Backup einspielen müssten. Außerdem können wir keine Plugins, Themes etc. mehr updaten. Direkt nach dem Update-Versuch erscheint der Fehler „500“ und der Shop ist nicht mehr erreichbar.
Zumindest auf unserer Seite ist ausschließlich der telemetry Fehler aus dem 1. Post in den Fehlerlogs - mit den selben Problemstellungen (kein Update/Deaktivieren/Löschen der Plugins oder des Caches möglich - egal ob über Backend oder manuell über DB). Versuche enden im 500 internal error und einem notwendigen Einspielen eines Backups.
Ich habe den gleichen Fehler und konnte es bisher soweit runterbrechen:
Das shopware/core bundle definiert unter folgendem Pfad eine telemetry.yaml-Datei: vendor/shopware/core/Framework/Resources/config/packages/telemetry.yaml
Der Inhalt:
shopware:
telemetry:
metrics:
namespace: 'io.opentelemetry.contrib.php.shopware'
definitions:
plugin.install.count:
description: 'Number of plugin installations'
type: 'counter'
app.install.count:
description: 'Number of app installations'
type: 'counter'
cache.invalidate.count:
description: 'Number of cache invalidations'
type: 'counter'
messenger.message.size:
description: 'Size of the message in bytes'
enabled: true
type: 'histogram'
unit: 'byte'
parameters:
buckets: [0, 512, 1024, 2048, 4096, 8192, 16384, 32768]
dal.associations.count:
description: 'Number of associations loaded'
type: 'histogram'
database.locks.count:
description: 'Number of database locks'
enabled: true
type: 'counter'
Anscheinend gibt es einen Fehler, in der entsprechenden DependencyInjection des SymfonyBundles:
Pfad: vendor/shopware/core/Framework/DependencyInjection/Configuration.php
Diese Datei definiert die erlaubte YAML-Struktur. Sprich: Welche Einstellungen darf ich unter dem Keyword shopware: in den YAML-Dateien benutzen. Hier findet man keine Definition für den Schlüssel ‚telemetry‘
Ich habe jetzt testweise diese Datei gelöscht und ich erhalte darauf beim Versuch ein Plugin zu Deaktivieren eine weitere Fehlermeldung: Shopware\Core\Migration\V6_5\Migration1663402842AddPathToMedia contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (Shopware\Core\Framework\Migration\MigrationStep::updateDestructive)
Was mich sehr wundert:
Vor zwei Wochen habe ich ein Update (mitsamt deaktivieren der Plugins etc.) ohne Probleme durchführen können. Aufgrund von Plugininkompatibilität (die jetzt behoben ist) mussten wir das Update wieder zurücksetzen. Und jetzt tritt der o.g. Fehler beim Versuch auf, die Plugins zu deaktivieren, ohne das sich unsere Dateien verändert haben.
Ich befürchte fast, dass der Fehler hier bei Shopware liegt.
Das Problem kann gelöst werden indem der Inhalt des /vendor Ordners komplett gelöscht wird.
Anschliessend „composer install“ in der Shell ausführen.
Das hat den Fehler bei mir komplett gelöst und ich konnte anschliessend Plugins wieder deaktivieren und das Update erneut auf dem Stage System durchführen.
Zusatz:
Nachdem ich mir dann die weitere Fehlermeldung angeschaut habe, habe ich noch folgende Zeile im Shopware-Core-Bundle abgeändert und danach das Plugin-System (sowie den cache) wieder zum Laufen gebracht:
Datei: vendor/shopware/core/Framework/Migration/MigrationStep.php
Zeile 30 muss auskommentiert werden:
Von => abstract public function updateDestructive(Connection $connection): void;
Zu => // abstract public function updateDestructive(Connection $connection): void;
Anschließend konnte ich also wieder über die Erweiterungen im Backend einzelne Erweiterungen ausschalten bzw einschalten und den Cache clearen.
!!!ACHTUNG!!!
Änderungen am Core sollten nur mit Vorsicht vorgenommen werden. Die Fehler die ich hier gefixt habe waren alle ausschließlich im Core-Bundle direkt. Da hat kein Plugin oder Theme die Finger mit im Spiel gehabt. Den eigentlich Grund für die Fehler konnte ich nicht feststellen.
Mich wundert es sehr, dass die im Bundle enthaltenen Migrationsdateien einfach ihr eigenes definiertes Interface nicht erfüllen (Die Funktion updateDestructive hat einfach bei einer großen Zahl von Migrationsdateien gefehlt.). Das ist schlicht und einfach fehlerhafter Code direkt im Shopware-Core-Bundle.
Ich würde mich sehr über einen Kommentar von Shopware direkt freuen, auch wenn man hier im Forum etwas Glück braucht Vielleicht hilft das hier ja wenigstens der einen oder anderen Person weiter!
Habe ich direkt auch getestet und tatsächlich scheint das den telemetry-Fehler zu beheben.
Hat da jemand von Shopware ein Force-Push auf einer Version gemacht?
Komischerweise habe ich dennoch den Fehler mit den Migrations-Dateien gehabt. Diesesmal ausgehend von einem Plugin. Der „fix“ von meinem letzten Post scheint das zu Umgehen.
Nachtrag:
In einem Update hat Shopware die Funktion updateDestructive von abstract auf eine leere Funktion geändert. Es kann also sein, dass einige Pluginentwickler ihre Versionen nicht richtig gesetzt haben und dann kommt es hier zu einem kritischen Fehler.
Das auskommentieren der Zeile hilft dabei und sollte eigentlich nichts kaputt machen