Fehler nach Update auf 5.7.11 - Value „PL2“ is not an integer or a number castable to integer

Hallo zusammen,

nach Update auf Shopware 5.7.11 habe ich regelmäßig folgenden Fehler im Log:

Assert\InvalidArgumentException: Value „PL2“ is not an integer or a number castable to integer. in /vendor/beberlei/assert/lib/Assert/Assertion.php:2728 Stack trace:
#0 /vendor/beberlei/assert/lib/Assert/Assertion.php(561): Assert\Assertion::createException()
#1 /vendor/beberlei/assert/lib/Assert/Assertion.php(2134): Assert\Assertion::integerish()
#2 /engine/Shopware/Bundle/SearchBundle/Condition/CustomerGroupCondition.php(48): Assert\Assertion::__callStatic()
#3 /engine/Shopware/Bundle/SearchBundle/CriteriaRequestHandler/CoreCriteriaRequestHandler.php(181): Shopware\Bundle\SearchBundle\Condition\CustomerGroupCondition->__construct()
#4 /engine/Shopware/Bundle/SearchBundle/CriteriaRequestHandler/CoreCriteriaRequestHandler.php(74): Shopware\Bundle\SearchBundle\CriteriaRequestHandler\CoreCriteriaRequestHandler->addCustomerGroupCondition()
#5 /engine/Shopware/Bundle/SearchBundle/StoreFrontCriteriaFactory.php(255): Shopware\Bundle\SearchBundle\CriteriaRequestHandler\CoreCriteriaRequestHandler->handleRequest()
#6 /engine/Shopware/Bundle/SearchBundle/StoreFrontCriteriaFactory.php(117): Shopware\Bundle\SearchBundle\StoreFrontCriteriaFactory->createCriteriaFromRequest()
#7 /custom/plugins/SwagFuzzy/Bundle/SearchBundle/FuzzyStoreFrontCriteriaFactory.php(76): Shopware\Bundle\SearchBundle\StoreFrontCriteriaFactory->createListingCriteria()
#8 /engine/Shopware/Controllers/Frontend/Listing.php(315): SwagFuzzy\Bundle\SearchBundle\FuzzyStoreFrontCriteriaFactory->createListingCriteria()
#9 /engine/Shopware/Controllers/Frontend/Listing.php(301): Shopware_Controllers_Frontend_Listing->hasProducts()
#10 /engine/Shopware/Controllers/Frontend/Listing.php(117): Shopware_Controllers_Frontend_Listing->getEmotionConfiguration()
#11 /engine/Library/Enlight/Controller/Action.php(186): Shopware_Controllers_Frontend_Listing->indexAction()
#12 /engine/Library/Enlight/Controller/Dispatcher/Default.php(467): Enlight_Controller_Action->dispatch()
#13 /engine/Library/Enlight/Controller/Front.php(225): Enlight_Controller_Dispatcher_Default->dispatch()
#14 /engine/Shopware/Kernel.php(197): Enlight_Controller_Front->dispatch()
#15 /vendor/symfony/http-kernel/HttpCache/SubRequestHandler.php(85): Shopware\Kernel->handle()
#16 /vendor/symfony/http-kernel/HttpCache/HttpCache.php(479): Symfony\Component\HttpKernel\HttpCache\SubRequestHandler::handle()
#17 /engine/Shopware/Components/HttpCache/AppCache.php(266): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward()
#18 /vendor/symfony/http-kernel/HttpCache/HttpCache.php(452): Shopware\Components\HttpCache\AppCache->forward()
#19 /vendor/symfony/http-kernel/HttpCache/HttpCache.php(346): Symfony\Component\HttpKernel\HttpCache\HttpCache->fetch()
#20 /engine/Shopware/Components/HttpCache/AppCache.php(192): Symfony\Component\HttpKernel\HttpCache\HttpCache->lookup()
#21 /vendor/symfony/http-kernel/HttpCache/HttpCache.php(224): Shopware\Components\HttpCache\AppCache->lookup()
#22 /engine/Shopware/Components/HttpCache/AppCache.php(117): Symfony\Component\HttpKernel\HttpCache\HttpCache->handle()
#23 /var/www/vhosts/domain.de/httpdocs/domain/shopware.php(122): Shopware\Components\HttpCache\AppCache->handle()
#24

PL2 ist dabei die Bezeichnung einer Kundengruppe. Der Fehler taucht im selben Wortlaut auch bei allen anderen Kundengruppen auf.

Ich kann den Fehler anhand der Meldung aber überhaupt nicht zuordnen. Scheint irgendwas mit dem Listing zu tun zu haben, aber ich kann mir nicht erklären, an welcher Stelle.
Kann da jemand helfen?

Kann nur mutmaßen, aber die Exception kommt aus einem Filter auf Kundengruppe. Nimm im Backend bei der Kategorie (z.B. Deutsch) mal die Einschränkung auf Kundengruppe ganz raus. Wenn es dann weg ist, versuch mal die Zuordnung neu zu erstellen. Das musst du dann ggf. für alle Kategorien mit Einstellungen bei “Kategorie einschränken“ durchführen.

LG Phil

Danke für den Tipp, leider ist das nicht der Auslöser. Wir haben nur eine Kategorie mit einer Einschränkung für eine Kundengruppe. Der Fehler tritt aber bei allen Kundengruppen auf. Ich habe es aber trotzdem mal neu zugeordnet, ohne Erfolg :(.

Hm, soweit ich sehen konnte kommt dieser Fehlermeldung aus einer Funktion die einen Wert auf integer prüfen soll. Im Zusammenhang mit der Kundengruppe taucht diese Prüfung auf, aber dort wird nach KundenGruppenID überrpüft. Die Bezeichnung „PL2“ durfte hier gar nicht erscheinen.

Weiß nicht ob es damit Zusammenhängt, aber das könnte man ja prüfen.

Ist von mir auch nur eine Vermutung!

Danke für den Hinweis, wie kann ich das denn prüfen?

Ich habe mal in die s_core_customergroups geguckt, da sieht alles normal aus. „PL2“ ist ja nur das Kürzel der Gruppe.

Ich hatte mal geschaut, habe aber zur Stunde noch keine Idee wann diese Funktion aufgerufen wird? Ich hatte zum Test (in einer eigenen Testumgebung) die Variable $customerGroupIds über print_r() ausgeben wollen. Hat aber gar nichts angezeigt.

Ist bei euch ersichtlich (aus den Logs etc.) wann und wo dieser Fehler genau kommt? Dann könnte man das besser eingrenzen und ggf. besser debugen.

Der Fehler tritt auf, wenn man eine beliebige Kategorie aufruft.

Bin noch weiter auf Ursachenforschung gegangen und ich glaube ich kann den Fehler reproduzieren. Es liegt wohl am Auto-Login Plugin das wir nutzen. Also beim Einloggen kann der User anhaken „Angemeldet bleiben“.

So lässt sich der Fehler reproduzieren:

  • im Frontend einloggen und den Haken setzen für „Angemeldet bleiben“
  • im Backend über Artikel → Kategorien eine beliebige Kategorie unterhalb von „Deutsch“ anklicken
  • im Frontend eine beliebige Kategorie aufrufen

Das muss alles in einem Browser über zwei Tabs geschehen.
Dann erscheint im Frontend die Fehlerseite „Oops, ein Fehler ist aufgetreten…“ und im Log die genannte Meldung. Aktualisiert man die Seite funktioniert alles normal.

Ich kann mir ehrlich gesagt nicht erklären wie das Zusammenhängt. Wie kann das Frontend beeinflusst werden, wenn ich im Backend „nur“ rumklicke? Ich vermute, dass der Fehler im Log aber auch nur bei Leuten mit Backend Zugang auftritt, das werde ich jetzt mal beobachten. So gesehen wäre es für unsere Kunden also nicht relevant.

Oha, die Session für Backend und Frontend sind eigentlich getrennt. Aber, ich hatte schon komplexe Fälle wo sich die Session bzw. die Cookies zwischen Backend-Login und Frontend-Login beeinflusst haben. Hier war es ein Zusammenspiel von meheren Plugins die unter sich inkompatibel waren.

Aber gut, wenn es nicht direkt die Kunden betrifft. Nervig bleibt es bestimmt dennoch.