# Cronjob Garbage Collector Fehler unter PHP8

**URL:** <https://forum.shopware.com/t/cronjob-garbage-collector-fehler-unter-php8/92865>\
**Category:** Administration\
**Tags:** administration, programming\
**Created:** [9. Februar 2022 um 16:39 UTC](https://forum.shopware.com/t/cronjob-garbage-collector-fehler-unter-php8/92865 "2022-02-09T16:39:02Z")\
**Posts on this page:** 11\
**Page:** 1

<div class="post-metadata">

**Author:** ![sandra.meier.0404](https://avatars.discourse-cdn.com/v4/letter/s/9fc348/32.png) [@sandra.meier.0404](https://forum.shopware.com/u/sandra.meier.0404)\
**Post date:** [9. Februar 2022 um 16:39 UTC](https://forum.shopware.com/t/cronjob-garbage-collector-fehler-unter-php8/92865/1 "2022-02-09T16:39:03Z")

</div>

Shopware Version 5.7.7 - PHP 8

Seit dem Umstieg auf PHP8 bringen die Cronjobs **Media Garbage Collector** , sowie der Cronjob des Shopware Original Plugins **CustomProducts Hash GarbageCollector** ein array Error.  
Vielleicht kann man das irgendwo in der todo Liste aufnehmen?

---

<div class="post-metadata">

**Author:** ![sonic](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/sonic/32/25728_2.png) [@sonic](https://forum.shopware.com/u/sonic)\
**Post date:** [9. Februar 2022 um 17:59 UTC](https://forum.shopware.com/t/cronjob-garbage-collector-fehler-unter-php8/92865/2 "2022-02-09T17:59:38Z")

</div>

Custom Products V2 ist ja ein nicht gerade günstiges Premium-Plugin von Shopware selber. Ich würde da mal beim Support eine Mängelrüge aussprechen und - einzig richtige Stelle - einen Eintrag unter [https://issues.shopware.com/](https://issues.shopware.com/) machen. Meldungen im Forum finden in Schöppingen eher kein Gehör.

---

<div class="post-metadata">

**Author:** ![d.garding](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/d.garding/32/10544_2.png) [@d.garding](https://forum.shopware.com/u/d.garding)\
**Post date:** [10. Februar 2022 um 08:28 UTC](https://forum.shopware.com/t/cronjob-garbage-collector-fehler-unter-php8/92865/3 "2022-02-10T08:28:07Z")

</div>

Hallo,

Ein Ticket im [Shopware Issuetracker](https://issues.shopware.com/?_ga=2.84116560.812136897.1644213664-714973706.1618383369) ist sicherlich am besten.

Aber der Support kann auch gut weiterhelfen!

Edit: Der Community Slack Channel kann bei Problemen auch weiter helfen

> **[Slack is where the future works](https://shopwarecommunity.slack.com/)**
>
> Slack is a new way to communicate with your team. It’s faster, better organised and more secure than email.

---

<div class="post-metadata">

**Author:** ![sonic](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/sonic/32/25728_2.png) [@sonic](https://forum.shopware.com/u/sonic)\
**Post date:** [10. Februar 2022 um 08:41 UTC](https://forum.shopware.com/t/cronjob-garbage-collector-fehler-unter-php8/92865/4 "2022-02-10T08:41:57Z")

</div>

Formal ist der Issuetracker die erste Anlaufstelle. Aber alle, die sich schon ein paar Jahre mit Shopware rumschlagen, wissen, dass der Issuetracker eher ein großes, belangloses WünschDirWas-Märchenbuch ist.

Custom Prodcuts kostet im Gegensatz zur PE jährlich eine Menge Geld. Wenn das Produkt unter der aktuellen PHP8-Umgebung nicht funktioniert, dann ist das ein Produktmangel, der unverzüglich zu beheben ist. Da ist dann die Bugtracker-Farce ganz und gar die falsche Stelle.

Custom Products (V1 und V2) waren schon immer eine unglaubliche Bugseuche.

---

<div class="post-metadata">

**Author:** ![d.garding](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/d.garding/32/10544_2.png) [@d.garding](https://forum.shopware.com/u/d.garding)\
**Post date:** [10. Februar 2022 um 09:45 UTC](https://forum.shopware.com/t/cronjob-garbage-collector-fehler-unter-php8/92865/5 "2022-02-10T09:45:30Z")

</div>

@sandra.meier.0404 kannst du mal die Fehlermeldungen hier Posten und den ablauf einmal schildern.

Ich würde dazu gern ein Ticket anlegen damit wir das schnell beheben können.

---

<div class="post-metadata">

**Author:** ![sandra.meier.0404](https://avatars.discourse-cdn.com/v4/letter/s/9fc348/32.png) [@sandra.meier.0404](https://forum.shopware.com/u/sandra.meier.0404)\
**Post date:** [10. Februar 2022 um 13:10 UTC](https://forum.shopware.com/t/cronjob-garbage-collector-fehler-unter-php8/92865/6 "2022-02-10T13:10:57Z")

</div>

Prima vielen Dank - habe für Custom Products jetzt den Support kontaktiert.

Die Fehlermeldung des Cronjobs Media Garbage Collectors ist:

array (  
‚error‘ =\> ‚preg\_match(): Argument #2 ($subject) must be of type string, array given‘,  
)

Im Shopablauf gibt es keine Probleme. Die nicht genutzten Bilder können auch noch per Konsole in den Papierkorb verfrachtet werden, wenn dort PHP 7.4 eingestellt ist.

Nur die Ausführung des Cronjobs Shopware\_CronJob\_MediaCrawler im Shopsystem 5.7.7 unter PHP8 gibt diese Fehlermeldung aus und legt natürlich keine Bilder in den Papierkorb.

Ist kein dringendes Problem, da alles andere funktioniert.

Vielen Dank

---

<div class="post-metadata">

**Author:** ![d.garding](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/d.garding/32/10544_2.png) [@d.garding](https://forum.shopware.com/u/d.garding)\
**Post date:** [11. Februar 2022 um 08:43 UTC](https://forum.shopware.com/t/cronjob-garbage-collector-fehler-unter-php8/92865/7 "2022-02-11T08:43:24Z")

</div>

Hallo @sandra.meier.0404,

ich habe versucht das Problem nachzustellen, bei mir läuft alles durch. Hast du denn auch jeweils die PHP8 kompatiblen versionen installiert? Oder kann es sein, das ein DrittPlugin  
diesen Fehler verursacht? Jedes Plugin kann sich in diesem Prozess einhängen.

LG

Dennis

---

<div class="post-metadata">

**Author:** ![sandra.meier.0404](https://avatars.discourse-cdn.com/v4/letter/s/9fc348/32.png) [@sandra.meier.0404](https://forum.shopware.com/u/sandra.meier.0404)\
**Post date:** [11. Februar 2022 um 17:34 UTC](https://forum.shopware.com/t/cronjob-garbage-collector-fehler-unter-php8/92865/8 "2022-02-11T17:34:46Z")

</div>

Habe im Pluginmanager den Sicherheitsmodus aktiviert und alle Drittanbieter Plugins deaktiviert.  
Aber kein Erfolg.  
Ansonsten läuft ja alles, nur der Cronjob funktioniert nicht.  
Ist nicht weiter schlimm, da ich die Bilder auch händisch über die Konsole löschen kann.  
Werde aber weiter suchen…  
Danke

---

<div class="post-metadata">

**Author:** ![d.garding](https://dub1.discourse-cdn.com/flex013/user_avatar/forum.shopware.com/d.garding/32/10544_2.png) [@d.garding](https://forum.shopware.com/u/d.garding)\
**Post date:** [14. Februar 2022 um 08:35 UTC](https://forum.shopware.com/t/cronjob-garbage-collector-fehler-unter-php8/92865/10 "2022-02-14T08:35:49Z")

</div>

Hast du denn bei dem Fehler vllt. noch den StackTrace?

Über diesen kann man vllt. Rückschlüsse ziehen

---

<div class="post-metadata">

**Author:** ![sandra.meier.0404](https://avatars.discourse-cdn.com/v4/letter/s/9fc348/32.png) [@sandra.meier.0404](https://forum.shopware.com/u/sandra.meier.0404)\
**Post date:** [14. Februar 2022 um 17:51 UTC](https://forum.shopware.com/t/cronjob-garbage-collector-fehler-unter-php8/92865/11 "2022-02-14T17:51:07Z")

</div>

> [@d.garding](#):
>
> StackTrace

Über das Backend bekomme ich nur diesen Array Fehler.  
Wenn ich den Media Garbage Collector unter php74 über SSH-Konsole ausführe, funktioniert es reibungslos. Switche ich in der Konsole zu php8 bekomme ich folgende Fehlermeldung (Pfade habe ich geXt.)

ssh-XXXXX php bin/console sw:media:cleanup

## Searching for unused media files.

PHP Fatal error: Uncaught TypeError: preg\_match(): Argument #2 ($subject) must be of type string, array given in XXXXXXX/Bundle/MediaBundle/Strategy/Md5Strategy.php:45  
Stack trace:  
#0 XXXXXXX/Bundle/MediaBundle/Strategy/Md5Strategy.php(45): preg\_match(‚/._((media\/(?:…‚, Array, NULL)  
 #1 XXXXXXX/Bundle/MediaBundle/MediaService.php(201): XXXXXXX\Bundle\MediaBundle\Strategy\Md5Strategy-\>normalize(Array)  
 #2 XXXXXXX/Bundle/MediaBundle/GarbageCollector.php(289): XXXXXXX\Bundle\MediaBundle\MediaService-\>normalize(Array)  
 #3 XXXXXXX/Bundle/MediaBundle/GarbageCollector.php(199): XXXXXXX\Bundle\MediaBundle\GarbageCollector-\>addMediaByPath(Array)  
 #4 XXXXXXX/Bundle/MediaBundle/GarbageCollector.php(141): XXXXXXX\Bundle\MediaBundle\GarbageCollector-\>handleSerializeTable(Object(XXXXXXX\Bundle\MediaBundle\Struct\MediaPosition))  
 #5 XXXXXXX/Bundle/MediaBundle/GarbageCollector.php(79): XXXXXXX\Bundle\MediaBundle\GarbageCollector-\>find(Object(XXXXXXX\Bundle\MediaBundle\Struct\MediaPosition))  
 #6 XXXXXXX/Bundle/MediaBundle/Commands/MediaCleanupCommand.php(134): XXXXXXX\Bundle\MediaBundle\GarbageCollector-\>run()  
 #7 XXXXXXX/Bundle/MediaBundle/Commands/MediaCleanupCommand.php(60): XXXXXXX\Bundle\MediaBundle\Commands\MediaCleanupCommand-\>handleMove()  
 #8 XXXXXXXvendor/symfony/console/Command/Command.php(255): XXXXXXX\Bundle\MediaBundle\Commands\MediaCleanupCommand-\>execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))  
 #9 XXXXXXXvendor/symfony/console/Application.php(1009): Symfony\Component\Console\Command\Command-\>run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))  
 #10 XXXXXXX/Components/Console/Application.php(131): Symfony\Component\Console\Application-\>doRunCommand(Object(XXXXXXX\Bundle\MediaBundle\Commands\MediaCleanupCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))  
 #11 XXXXXXXvendor/symfony/console/Application.php(273): XXXXXXX\Components\Console\Application-\>doRunCommand(Object(XXXXXXX\Bundle\MediaBundle\Commands\MediaCleanupCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))  
 #12 XXXXXXX/Components/Console/Application.php(110): Symfony\Component\Console\Application-\>doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))  
 #13 XXXXXXXvendor/symfony/console/Application.php(149): XXXXXXX\Components\Console\Application-\>doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))  
 #14 XXXXXXXbin/console(38): Symfony\Component\Console\Application-\>run(Object(Symfony\Component\Console\Input\ArgvInput))  
 #15 {main}  
thrown in XXXXXXX/Bundle/MediaBundle/Strategy/Md5Strategy.php on line 45  
ssh-XXXXXXX$ PHP Fatal error: Uncaught TypeError: preg\_match(): Argument #2 ($subject) must be of type string, array given in XXXXXXX/Bundle/MediaBundle/Strategy/Md5Strategy.php:45  
bash: syntax error near unexpected token `(‘  
ssh-XXXXXXX$ Stack trace:  
bash: Stack: command not found  
ssh-XXXXXXX$ #0 XXXXXXX/Bundle/MediaBundle/Strategy/Md5Strategy.php(45): preg\_match('/._((media\/(?:…‘, Array, NULL)  
ssh-XXXXXXX$ #1 XXXXXXX/Bundle/MediaBundle/MediaService.php(201): XXXXXXX\Bundle\MediaBundle\Strategy\Md5Strategy-\>normalize(Array)  
ssh-XXXXXXX$ #2 XXXXXXX/Bundle/MediaBundle/GarbageCollector.php(289): XXXXXXX\Bundle\MediaBundle\MediaService-\>normalize(Array)  
ssh-XXXXXXX$ #3 XXXXXXX/Bundle/MediaBundle/GarbageCollector.php(199): XXXXXXX\Bundle\MediaBundle\GarbageCollector-\>addMediaByPath(Array)  
ssh-XXXXXXX$ #4 XXXXXXX/Bundle/MediaBundle/GarbageCollector.php(141): XXXXXXX\Bundle\MediaBundle\GarbageCollector-\>handleSerializeTable(Object(XXXXXXX\Bundle\MediaBundle\Struct\MediaPosition))  
ssh-XXXXXXX$ #5 XXXXXXX/Bundle/MediaBundle/GarbageCollector.php(79): XXXXXXX\Bundle\MediaBundle\GarbageCollector-\>find(Object(XXXXXXX\Bundle\MediaBundle\Struct\MediaPosition))  
ssh-XXXXXXX$ #6 XXXXXXX/Bundle/MediaBundle/Commands/MediaCleanupCommand.php(134): XXXXXXX\Bundle\MediaBundle\GarbageCollector-\>run()  
ssh-XXXXXXX$ #7 XXXXXXX/Bundle/MediaBundle/Commands/MediaCleanupCommand.php(60): XXXXXXX\Bundle\MediaBundle\Commands\MediaCleanupCommand-\>handleMove()  
ssh-XXXXXXX$ #8 XXXXXXXvendor/symfony/console/Command/Command.php(255): XXXXXXX\Bundle\MediaBundle\Commands\MediaCleanupCommand-\>execute(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))  
ssh-XXXXXXX$ #9 XXXXXXXvendor/symfony/console/Application.php(1009): Symfony\Component\Console\Command\Command-\>run(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))  
ssh-XXXXXXX$ #10 XXXXXXX/Components/Console/Application.php(131): Symfony\Component\Console\Application-\>doRunCommand(Object(XXXXXXX\Bundle\MediaBundle\Commands\MediaCleanupCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))  
ssh-XXXXXXX$ #11 XXXXXXXvendor/symfony/console/Application.php(273): XXXXXXX\Components\Console\Application-\>doRunCommand(Object(XXXXXXX\Bundle\MediaBundle\Commands\MediaCleanupCommand), Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))  
ssh-XXXXXXX$ #12 XXXXXXX/Components/Console/Application.php(110): Symfony\Component\Console\Application-\>doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))  
ssh-XXXXXXX$ #13 XXXXXXXvendor/symfony/console/Application.php(149): XXXXXXX\Components\Console\Application-\>doRun(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))  
ssh-XXXXXXX$ #14 XXXXXXXbin/console(38): Symfony\Component\Console\Application-\>run(Object(Symfony\Component\Console\Input\ArgvInput))  
ssh-XXXXXXX$ #15 {main}  
ssh-XXXXXXX$ thrown in XXXXXXX/Bundle/MediaBundle/Strategy/Md5Strategy.php on line 45  
bash: thrown: command not found

---

<div class="post-metadata">

**Author:** ![sandra.meier.0404](https://avatars.discourse-cdn.com/v4/letter/s/9fc348/32.png) [@sandra.meier.0404](https://forum.shopware.com/u/sandra.meier.0404)\
**Post date:** [21. April 2022 um 07:27 UTC](https://forum.shopware.com/t/cronjob-garbage-collector-fehler-unter-php8/92865/12 "2022-04-21T07:27:35Z")

</div>

Problem wurde mit Shopware Update 5.7.8 behoben.
