Skip to content

Critical Error - Sporadic checkout issues, error thrown referencing Eway SavedTokens #25

@studio48internet

Description

@studio48internet

Hi

We're currently running Magento 2.4.3-p1 with Eway 3.1 and are having sporadic checkout issues. This affects all payment types, but the error appears to reference an issue with the extension:

`[2022-07-04 05:34:09] main.CRITICAL: TypeError: explode() expects parameter 2 to be string, object given in /.../public_html/vendor/magento/framework/Encryption/Encryptor.php:416
Stack trace:
#0 /.../public_html/vendor/magento/framework/Encryption/Encryptor.php(416): explode(':', Object(Eway\EwayRapid\Model\Customer\SavedTokens), 4)
#1 /.../public_html/vendor/eway/eway-rapid-magento2/Model/Customer/Token/Backend.php(67): Magento\Framework\Encryption\Encryptor->decrypt(Object(Eway\EwayRapid\Model\Customer\SavedTokens))
#2 [internal function]: Eway\EwayRapid\Model\Customer\Token\Backend->afterLoad(Object(Magento\Customer\Model\Customer\Interceptor))
#3 /.../public_html/vendor/magento/module-eav/Model/Entity/AbstractEntity.php(680): call_user_func_array(Array, Array)
#4 /.../public_html/vendor/magento/module-eav/Model/Entity/AbstractEntity.php(1821): Magento\Eav\Model\Entity\AbstractEntity->walkAttributes('backend/afterLo...', Array)
#5 /.../public_html/vendor/magento/module-eav/Model/Entity/VersionControl/AbstractEntity.php(48): Magento\Eav\Model\Entity\AbstractEntity->_afterLoad(Object(Magento\Customer\Model\Customer\Interceptor))
#6 /.../public_html/vendor/magento/module-eav/Model/Entity/AbstractEntity.php(1004): Magento\Eav\Model\Entity\VersionControl\AbstractEntity->_afterLoad(Object(Magento\Customer\Model\Customer\Interceptor))
#7 /.../public_html/vendor/magento/framework/Model/AbstractModel.php(540): Magento\Eav\Model\Entity\AbstractEntity->load(Object(Magento\Customer\Model\Customer\Interceptor), 7202, NULL)
#8 /.../public_html/app/code/Magedelight/Giftcard/Observer/Frontend/PlaceProductOrder.php(140): Magento\Framework\Model\AbstractModel->load(7202)
#9 /.../public_html/vendor/magento/framework/Event/Invoker/InvokerDefault.php(88): Magedelight\Giftcard\Observer\Frontend\PlaceProductOrder->execute(Object(Magento\Framework\Event\Observer))
#10 /.../public_html/vendor/magento/framework/Event/Invoker/InvokerDefault.php(74): Magento\Framework\Event\Invoker\InvokerDefault->_callObserverMethod(Object(Magedelight\Giftcard\Observer\Frontend\PlaceProductOrder), Object(Magento\Framework\Event\Observer))
#11 /.../public_html/vendor/magento/framework/Event/Manager.php(66): Magento\Framework\Event\Invoker\InvokerDefault->dispatch(Array, Object(Magento\Framework\Event\Observer))
#12 /.../public_html/generated/code/Magento/Framework/Event/Manager/Proxy.php(95): Magento\Framework\Event\Manager->dispatch('sales_order_pla...', Array)
#13 /.../public_html/vendor/magento/module-sales/Model/Order.php(1215): Magento\Framework\Event\Manager\Proxy->dispatch('sales_order_pla...', Array)
#14 /.../public_html/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Sales\Model\Order->place()
#15 /.../public_html/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Sales\Model\Order\Interceptor->___callParent('place', Array)
#16 /.../public_html/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Sales\Model\Order\Interceptor->Magento\Framework\Interception\{closure}()
#17 /.../public_html/generated/code/Magento/Sales/Model/Order/Interceptor.php(32): Magento\Sales\Model\Order\Interceptor->___callPlugins('place', Array, Array)
#18 /.../public_html/vendor/magento/module-sales/Model/Service/OrderService.php(209): Magento\Sales\Model\Order\Interceptor->place()
#19 /.../public_html/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Sales\Model\Service\OrderService->place(Object(Magento\Sales\Model\Order\Interceptor))
#20 /.../public_html/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Sales\Model\Service\OrderService\Interceptor->___callParent('place', Array)
#21 /.../public_html/vendor/xtento/orderexport/Plugin/OrderServicePlugin.php(46): Magento\Sales\Model\Service\OrderService\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Sales\Model\Order\Interceptor))
#22 /.../public_html/vendor/magento/framework/Interception/Interceptor.php(135): Xtento\OrderExport\Plugin\OrderServicePlugin->aroundPlace(Object(Magento\Sales\Model\Service\OrderService\Interceptor), Object(Closure), Object(Magento\Sales\Model\Order\Interceptor))
#23 /.../public_html/vendor/magento/module-inventory-sales/Plugin/Sales/OrderManagement/AppendReservationsAfterOrderPlacementPlugin.php(195): Magento\Sales\Model\Service\OrderService\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Sales\Model\Order\Interceptor))
#24 /.../public_html/vendor/magento/framework/Interception/Interceptor.php(135): Magento\InventorySales\Plugin\Sales\OrderManagement\AppendReservationsAfterOrderPlacementPlugin->aroundPlace(Object(Magento\Sales\Model\Service\OrderService\Interceptor), Object(Closure), Object(Magento\Sales\Model\Order\Interceptor))
#25 /.../public_html/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Sales\Model\Service\OrderService\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Sales\Model\Order\Interceptor))
#26 /.../public_html/generated/code/Magento/Sales/Model/Service/OrderService/Interceptor.php(32): Magento\Sales\Model\Service\OrderService\Interceptor->___callPlugins('place', Array, NULL)
#27 /.../public_html/vendor/magento/module-quote/Model/QuoteManagement.php(575): Magento\Sales\Model\Service\OrderService\Interceptor->place(Object(Magento\Sales\Model\Order\Interceptor))
#28 /.../public_html/vendor/magento/module-quote/Model/QuoteManagement.php(456): Magento\Quote\Model\QuoteManagement->submitQuote(Object(Magento\Quote\Model\Quote\Interceptor), Array)
#29 /.../public_html/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Quote\Model\QuoteManagement->submit(Object(Magento\Quote\Model\Quote\Interceptor))
#30 /.../public_html/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Quote\Model\QuoteManagement\Interceptor->___callParent('submit', Array)
#31 /.../public_html/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Quote\Model\QuoteManagement\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Quote\Model\Quote\Interceptor))
#32 /.../public_html/generated/code/Magento/Quote/Model/QuoteManagement/Interceptor.php(23): Magento\Quote\Model\QuoteManagement\Interceptor->___callPlugins('submit', Array, Array)
#33 /.../public_html/vendor/magento/module-quote/Model/QuoteManagement.php(414): Magento\Quote\Model\QuoteManagement\Interceptor->submit(Object(Magento\Quote\Model\Quote\Interceptor))
#34 /.../public_html/vendor/magento/module-checkout/Model/PaymentInformationManagement.php(125): Magento\Quote\Model\QuoteManagement->placeOrder(65090)
#35 /.../public_html/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Checkout\Model\PaymentInformationManagement->savePaymentInformationAndPlaceOrder(65090, Object(Magento\Quote\Model\Quote\Payment\Interceptor), Object(Magento\Quote\Model\Quote\Address\Interceptor))
#36 /.../public_html/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Checkout\Model\PaymentInformationManagement\Interceptor->___callParent('savePaymentInfo...', Array)
#37 /.../public_html/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Checkout\Model\PaymentInformationManagement\Interceptor->Magento\Framework\Interception\{closure}(65090, Object(Magento\Quote\Model\Quote\Payment\Interceptor), Object(Magento\Quote\Model\Quote\Address\Interceptor))
#38 /.../public_html/generated/code/Magento/Checkout/Model/PaymentInformationManagement/Interceptor.php(23): Magento\Checkout\Model\PaymentInformationManagement\Interceptor->___callPlugins('savePaymentInfo...', Array, Array)
#39 [internal function]: Magento\Checkout\Model\PaymentInformationManagement\Interceptor->savePaymentInformationAndPlaceOrder(65090, Object(Magento\Quote\Model\Quote\Payment\Interceptor), Object(Magento\Quote\Model\Quote\Address\Interceptor))
#40 /.../public_html/vendor/magento/module-webapi/Controller/Rest/SynchronousRequestProcessor.php(95): call_user_func_array(Array, Array)
#41 /.../public_html/vendor/magento/module-webapi/Controller/Rest.php(188): Magento\Webapi\Controller\Rest\SynchronousRequestProcessor->process(Object(Magento\Framework\Webapi\Rest\Request\Proxy))
#42 /.../public_html/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Webapi\Controller\Rest->dispatch(Object(Magento\Framework\App\Request\Http))
#43 /.../public_html/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Webapi\Controller\Rest\Interceptor->___callParent('dispatch', Array)
#44 /.../public_html/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Webapi\Controller\Rest\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
#45 /.../public_html/generated/code/Magento/Webapi/Controller/Rest/Interceptor.php(23): Magento\Webapi\Controller\Rest\Interceptor->___callPlugins('dispatch', Array, Array)
#46 /.../public_html/vendor/magento/framework/App/Http.php(116): Magento\Webapi\Controller\Rest\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#47 /.../public_html/generated/code/Magento/Framework/App/Http/Interceptor.php(23): Magento\Framework\App\Http->launch()
#48 /.../public_html/vendor/magento/framework/App/Bootstrap.php(264): Magento\Framework\App\Http\Interceptor->launch()
#49 /.../public_html/pub/index.php(39): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http\Interceptor))
#50 {main} [] []

Frustratingly it doesn't do this consistently - perhaps one in twenty transactions or so. The result is that the customer sees an error along the lines of the order wasn't successful, but in reality the payment was successful and appears in the quote_payment table but the above presumably breaks the sales order creation and the result is a "ghost" order.

Is this a bug with the Eway extension? Any advice appreciated.

Cheers
John

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions