Fehler beim senden von Bestell-Bestätigungsmails

Hallo zusammen,

Ich habe leider massive Probleme bei der Bestellbestätigung und finde nicht wie ich den Fehler beseitigen könnte:

Ich hoffe jemand kennt sich besser aus und kann mir sagen wo der Bug liegt… Vorhanden ist er seit 4-5 Tagen, davor habe ich aber nichts gemacht außer den Shop aktualisiert und alle Plugins Aktualisiert. Ich weiß aber auch nicht welches Plugin dafür verantwortlich sein könnte weil angeblich alle kompatibel sind mit 5.6.2

Grüße

Message:	
Could not send order mail for ordernumber 20372 to address **************@********.de
Time:	
2019-10-15T09:36:56.025506+0200
Channel:	
core
Context:	
{
    "exception": {
        "class": "Doctrine\\DBAL\\Types\\ConversionException",
        "message": "Could not convert database value \"a:22:{s:13:\"sOrderDe...\" to Doctrine Type array",
        "code": 0,
        "file": "/var/www/clients/client4326/web8731/web/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/ConversionException.php:46",
        "trace": [
            "/var/www/clients/client4326/web8731/web/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/ArrayType.php:60",
            "/var/www/clients/client4326/web8731/web/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php:315",
            "/var/www/clients/client4326/web8731/web/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php:331",
            "/var/www/clients/client4326/web8731/web/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php:162",
            "/var/www/clients/client4326/web8731/web/vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php:152",
            "/var/www/clients/client4326/web8731/web/engine/Library/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php:394",
            "/var/www/clients/client4326/web8731/web/vendor/doctrine/orm/lib/Doctrine/ORM/EntityRepository.php:196",
            "/var/www/clients/client4326/web8731/web/engine/Shopware/Components/TemplateMail.php:182",
            "/var/www/clients/client4326/web8731/web/engine/Shopware/Core/sOrder.php:959",
            "/var/www/clients/client4326/web8731/web/engine/Shopware/Core/sOrder.php:848",
            "/var/www/clients/client4326/web8731/web/var/cache/production_201909250854/proxies/sOrderProxy.php:79",
            "/var/www/clients/client4326/web8731/web/engine/Library/Enlight/Hook/HookExecutionContext.php:137",
            "/var/www/clients/client4326/web8731/web/engine/Library/Enlight/Hook/HookExecutionContext.php:103",
            "/var/www/clients/client4326/web8731/web/engine/Library/Enlight/Hook/HookManager.php:180",
            "/var/www/clients/client4326/web8731/web/var/cache/production_201909250854/proxies/sOrderProxy.php:90",
            "/var/www/clients/client4326/web8731/web/engine/Shopware/Controllers/Frontend/Payment.php:113",
            "/var/www/clients/client4326/web8731/web/custom/plugins/SwagPaymentPayPalUnified/Controllers/Frontend/PaypalUnified.php:253",
            "/var/www/clients/client4326/web8731/web/engine/Library/Enlight/Controller/Action.php:192",
            "/var/www/clients/client4326/web8731/web/engine/Library/Enlight/Controller/Dispatcher/Default.php:478",
            "/var/www/clients/client4326/web8731/web/engine/Library/Enlight/Controller/Front.php:228",
            "/var/www/clients/client4326/web8731/web/engine/Shopware/Kernel.php:185",
            "/var/www/clients/client4326/web8731/web/vendor/symfony/http-kernel/HttpCache/SubRequestHandler.php:102",
            "/var/www/clients/client4326/web8731/web/vendor/symfony/http-kernel/HttpCache/HttpCache.php:448",
            "/var/www/clients/client4326/web8731/web/engine/Shopware/Components/HttpCache/AppCache.php:256",
            "/var/www/clients/client4326/web8731/web/vendor/symfony/http-kernel/HttpCache/HttpCache.php:420",
            "/var/www/clients/client4326/web8731/web/vendor/symfony/http-kernel/HttpCache/HttpCache.php:317",
            "/var/www/clients/client4326/web8731/web/engine/Shopware/Components/HttpCache/AppCache.php:183",
            "/var/www/clients/client4326/web8731/web/vendor/symfony/http-kernel/HttpCache/HttpCache.php:192",
            "/var/www/clients/client4326/web8731/web/engine/Shopware/Components/HttpCache/AppCache.php:110",
            "/var/www/clients/client4326/web8731/web/shopware.php:122"
        ]
    }
}

Deaktivere mal dein Paypal Plugin.

/var/www/clients/client4326/web8731/web/custom/plugins/SwagPaymentPayPalUnified/Controllers/Frontend/PaypalUnified.php:253"

 

Hab ich gemacht und komplett neu installiert auch mal zur vorsicht, leider ohne Glück. Paypal ist aber im Trace ja nur in der Mitte, die Zahlungen gehen auch durch. Der Fehler kommt aber bei der Bestätigungsmail (Kann Mail nicht senden) und da aus den sOrderDetails (Vermutlich)… Es liegt aber nicht an einem Bestimmten Produkt da alle Bestelungen fehlschlagen.

Glaube nicht das es hier am Paypal liegt. Ich vermute eher ein Datenbank-Problem. Zum Thema „Could not convert database value“ gibt es hier im Forum ähnliche Beiträge. Möglich das es hier Zusammenhänge gibt.

1 „Gefällt mir“

Jaaaaa, komme der Lösung näher. Wenn ich die Mailvorlagen mir ansehen will kommt Fehler 503 und keine einzige Mailvorlage ist da…

Ups! Ein Fehler ist aufgetreten! Die nachfolgenden Hinweise sollten Ihnen weiterhelfen. Could not convert database value "a:22:{s:13:"sOrderDe..." to Doctrine Type array in vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/ConversionException.php on line 46 Stack trace: #0 vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/ArrayType.php(60): Doctrine\DBAL\Types\ConversionException::conversionFailed('a:22:{s:13:"sOr...', 'array') #1 vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php(315): Doctrine\DBAL\Types\ArrayType->convertToPHPValue('a:22:{s:13:"sOr...', Object(Doctrine\DBAL\Platforms\MySqlPlatform)) #2 vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php(331): Doctrine\ORM\Internal\Hydration\AbstractHydrator->gatherRowData(Array, Array, Array) #3 vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php(162): Doctrine\ORM\Internal\Hydration\ObjectHydrator->hydrateRowData(Array, Array) #4 vendor/doctrine/orm/lib/Doctrine/ORM/Internal/Hydration/AbstractHydrator.php(152): Doctrine\ORM\Internal\Hydration\ObjectHydrator->hydrateAllData() #5 engine/Library/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php(561): Doctrine\ORM\Internal\Hydration\AbstractHydrator->hydrateAll(Object(PDOStatement), Object(Doctrine\ORM\Query\ResultSetMapping), Array) #6 vendor/doctrine/orm/lib/Doctrine/ORM/EntityRepository.php(181): Doctrine\ORM\Persisters\Entity\BasicEntityPersister->loadAll(Array, NULL, NULL, NULL) #7 vendor/doctrine/orm/lib/Doctrine/ORM/EntityRepository.php(164): Doctrine\ORM\EntityRepository->findBy(Array) #8 engine/Shopware/Controllers/Backend/Mail.php(54): Doctrine\ORM\EntityRepository->findAll() #9 engine/Library/Enlight/Controller/Action.php(192): Shopware_Controllers_Backend_Mail->getMailsAction() #10 engine/Library/Enlight/Controller/Dispatcher/Default.php(478): Enlight_Controller_Action->dispatch('getMailsAction') #11 engine/Library/Enlight/Controller/Front.php(228): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp)) #12 engine/Shopware/Kernel.php(185): Enlight_Controller_Front->dispatch() #13 vendor/symfony/http-kernel/HttpCache/SubRequestHandler.php(102): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true) #14 vendor/symfony/http-kernel/HttpCache/HttpCache.php(448):

 

So, Problem ist anscheinend gelöst. In der s_core_config_mails war bei sOrders ein Fehler in dem context Feld. Nachdem ich das auf NULL gesetzt habe ging es wieder. Welcher Fehler oder Zeichen es genau war konnte ich noch nicht analysieren, der String ist mächtig lang und verwirrend…

Danke aber für die Hilfe, besonders an R4M! Dein Tipp war die Lösung.

2 „Gefällt mir“

hey, ich hab das selbe Problem… was genau hast du da gemacht? ich komm trotz deines posts nicht weiter

relativ einfach:

Verbinde dich mit deiner Datenbank (phpmyAdmin oder ähnlich) und suche die Tabelle  s_core_config_mails. Dann suchst du die ID 2 (oder name sORDER ). Diesen Eintrag bearbeiten (Schraubenschlüssel). Vorletzter Eintrag ist context , daneben gibt es eine Checkbox für  NULL. Hacken setzen und Text im Feld löschen, dann speichern.

3 „Gefällt mir“

Hallo zusammen, 
hat es schon jemand von euch geschafft, das Problem langfristig zu lösen? Die Löschung des Felds context in sORDER in der  s_core_config_mails klappt erstmal hervorragend, danach funktioniert es wieder. Allerdings tritt bei uns das Problem immer wieder auf, nach gewisser Zeit bzw. vermutlich nach bestimmten Bestellungen. Nach welchem im speziellen konnte ich bisher aber leider noch nicht herausfinden :frowning:

Danke und Grüße!
​ Jonas

Seit ich den Fix oben angewendet habe, hatte ich keine Probleme mehr. Also über 8 Monate stabil. :wink:
Ich würde an deiner stelle  s_core_config_mails  bearbeiten wie oben beschrieben und sobald der Fehler wieder kommt den String kopieren und gezielt suchen was drin steht und ob du da evtl was erkennst, notfalls in eigenen Topic hier jemanden drauf schauen lassen.

2 „Gefällt mir“

Hatte soeben das gleiche Problem und Deine Lösung hat mir geholfen, danke AquaGrow.

 

** UPDATE **

Jetzt nach 2 Monaten hatte ich den Fehler wieder. Erkennbar am Fehler Log core_production, da stand der Fehler schön drin: 

2020-08-21 08:05:14] core.ERROR: Could not send order mail for ordernumber XXXXXX to address PLATZHALTER {“exception”:"[object] (Doctrine\DBAL\Types\ConversionException(code: 0): Could not convert database value “a:23:{s:13:“sOrderDe…” to Doctrine Type array at /var/www/clients/client22/web59/web/vendor/doctrine/dbal/lib/Doctrine/DBAL/Types/ConversionException.php:46)”} {“uid”:“3c688b1”}
 

Was jetzt die Ursache sein soll kann ich aber nicht rausfinden, hab das context Feld mal kopiert und vergleiche es in 2 Monaten mit den Nächsten, wenn der Fehler auftritt …

1 „Gefällt mir“

Bei uns trat das Problem auf, nachdem bei einer Bestellung im Kommentarfeld Emojis verwendet wurden.