Das Problem scheint von nicht unterstützten oder fehlerhaften Bildern zu kommen. Beim De-Serialisieren wird dann eine Exception geworfen, da der Rückgabewert von getThumbnailsRo() nicht korrekt geprüft wird…
vendor/shopware/core/Content/Media/Subscriber/MediaLoadedSubscriber.php
public function unserialize(EntityLoadedEvent $event): void
{
/** @var MediaEntity $media */
foreach ($event->getEntities() as $media) {
if ($media->getMediaTypeRaw()) {
$media->setMediaType(unserialize($media->getMediaTypeRaw()));
}
if ($media->getThumbnails() === null) {
if ($media->getThumbnailsRo()) {
try {
$collection = unserialize($media->getThumbnailsRo());
$media->setThumbnails($collection);
} catch (\ErrorException $e) {
$media->setThumbnails(new MediaThumbnailCollection());
}
} else {
$media->setThumbnails(new MediaThumbnailCollection());
}
}
}
}
Damit läuft alles korrekt durch, auch wenn bei den fehlerhaften Medien dann eben das Bild fehlt.