I updated my Magento site to CE 2.4.6 (from CE 2.4.5-p1) running on Nexcess. I've shipped to this address before so I know it's valid and the shipping lookup works. It fails when I click "Next" to go the payments screen and the exception log is as follows:
[2023-03-31T15:30:20.177535+00:00] main.CRITICAL: Magento\Framework\Exception\InputException: The address failed to save. Verify the address and try again. in /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/module-quote/Model/ShippingAddressManagement.php:122
Stack trace:
#0 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Quote\Model\ShippingAddressManagement->assign(389364, Object(Magento\Quote\Model\Quote\Address\Interceptor))
#1 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Quote\Model\ShippingAddressManagement\Interceptor->___callParent('assign', Array)
#2 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Quote\Model\ShippingAddressManagement\Interceptor->Magento\Framework\Interception\{closure}('389364', Object(Magento\Quote\Model\Quote\Address\Interceptor))
#3 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/generated/code/Magento/Quote/Model/ShippingAddressManagement/Interceptor.php(23): Magento\Quote\Model\ShippingAddressManagement\Interceptor->___callPlugins('assign', Array, Array)
#4 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/module-quote/Model/Quote/ShippingAssignment/ShippingProcessor.php(66): Magento\Quote\Model\ShippingAddressManagement\Interceptor->assign('389364', Object(Magento\Quote\Model\Quote\Address\Interceptor))
#5 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/module-quote/Model/Quote/ShippingAssignment/ShippingAssignmentProcessor.php(106): Magento\Quote\Model\Quote\ShippingAssignment\ShippingProcessor->save(Object(Magento\Quote\Model\Shipping), Object(Magento\Quote\Model\Quote\Interceptor))
#6 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/module-quote/Model/Quote/ShippingAssignment/ShippingAssignmentPersister.php(34): Magento\Quote\Model\Quote\ShippingAssignment\ShippingAssignmentProcessor->save(Object(Magento\Quote\Model\Quote\Interceptor), Object(Magento\Quote\Model\ShippingAssignment))
#7 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/module-quote/Model/QuoteRepository/SaveHandler.php(145): Magento\Quote\Model\Quote\ShippingAssignment\ShippingAssignmentPersister->save(Object(Magento\Quote\Model\Quote\Interceptor), Object(Magento\Quote\Model\ShippingAssignment))
#8 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/module-quote/Model/QuoteRepository/SaveHandler.php(120): Magento\Quote\Model\QuoteRepository\SaveHandler->processShippingAssignment(Object(Magento\Quote\Model\Quote\Interceptor))
#9 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/generated/code/Magento/Quote/Model/QuoteRepository/SaveHandler/Interceptor.php(23): Magento\Quote\Model\QuoteRepository\SaveHandler->save(Object(Magento\Quote\Model\Quote\Interceptor))
#10 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/module-quote/Model/QuoteRepository.php(202): Magento\Quote\Model\QuoteRepository\SaveHandler\Interceptor->save(Object(Magento\Quote\Model\Quote\Interceptor))
#11 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Quote\Model\QuoteRepository->save(Object(Magento\Quote\Model\Quote\Interceptor))
#12 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Quote\Model\QuoteRepository\Interceptor->___callParent('save', Array)
#13 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Quote\Model\QuoteRepository\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Quote\Model\Quote\Interceptor))
#14 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/generated/code/Magento/Quote/Model/QuoteRepository/Interceptor.php(59): Magento\Quote\Model\QuoteRepository\Interceptor->___callPlugins('save', Array, Array)
#15 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/module-checkout/Model/ShippingInformationManagement.php(191): Magento\Quote\Model\QuoteRepository\Interceptor->save(Object(Magento\Quote\Model\Quote\Interceptor))
#16 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Checkout\Model\ShippingInformationManagement->saveAddressInformation(389364, Object(Magento\Checkout\Model\ShippingInformation))
#17 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Checkout\Model\ShippingInformationManagement\Interceptor->___callParent('saveAddressInfo...', Array)
#18 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/app/code/WeltPixel/GA4/Plugin/ServerSide/ShippingInformation.php(57): Magento\Checkout\Model\ShippingInformationManagement\Interceptor->Magento\Framework\Interception\{closure}(389364, Object(Magento\Checkout\Model\ShippingInformation))
#19 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/framework/Interception/Interceptor.php(135): WeltPixel\GA4\Plugin\ServerSide\ShippingInformation->aroundSaveAddressInformation(Object(Magento\Checkout\Model\ShippingInformationManagement\Interceptor), Object(Closure), 389364, Object(Magento\Checkout\Model\ShippingInformation))
#20 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/app/code/WeltPixel/GoogleTagManager/Plugin/ShippingInformation.php(53): Magento\Checkout\Model\ShippingInformationManagement\Interceptor->Magento\Framework\Interception\{closure}(389364, Object(Magento\Checkout\Model\ShippingInformation))
#21 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/framework/Interception/Interceptor.php(135): WeltPixel\GoogleTagManager\Plugin\ShippingInformation->aroundSaveAddressInformation(Object(Magento\Checkout\Model\ShippingInformationManagement\Interceptor), Object(Closure), 389364, Object(Magento\Checkout\Model\ShippingInformation))
#22 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/app/code/WeltPixel/GA4/Plugin/ShippingInformation.php(61): Magento\Checkout\Model\ShippingInformationManagement\Interceptor->Magento\Framework\Interception\{closure}(389364, Object(Magento\Checkout\Model\ShippingInformation))
#23 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/framework/Interception/Interceptor.php(135): WeltPixel\GA4\Plugin\ShippingInformation->aroundSaveAddressInformation(Object(Magento\Checkout\Model\ShippingInformationManagement\Interceptor), Object(Closure), 389364, Object(Magento\Checkout\Model\ShippingInformation))
#24 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Checkout\Model\ShippingInformationManagement\Interceptor->Magento\Framework\Interception\{closure}(389364, Object(Magento\Checkout\Model\ShippingInformation))
#25 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/generated/code/Magento/Checkout/Model/ShippingInformationManagement/Interceptor.php(23): Magento\Checkout\Model\ShippingInformationManagement\Interceptor->___callPlugins('saveAddressInfo...', Array, NULL)
#26 [internal function]: Magento\Checkout\Model\ShippingInformationManagement\Interceptor->saveAddressInformation(389364, Object(Magento\Checkout\Model\ShippingInformation))
#27 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/module-webapi/Controller/Rest/SynchronousRequestProcessor.php(95): call_user_func_array(Array, Array)
#28 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/module-webapi/Controller/Rest.php(202): Magento\Webapi\Controller\Rest\SynchronousRequestProcessor->process(Object(Magento\Framework\Webapi\Rest\Request\Proxy))
#29 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/framework/Interception/Interceptor.php(58): Magento\Webapi\Controller\Rest->dispatch(Object(Magento\Framework\App\Request\Http))
#30 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/framework/Interception/Interceptor.php(138): Magento\Webapi\Controller\Rest\Interceptor->___callParent('dispatch', Array)
#31 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/framework/Interception/Interceptor.php(153): Magento\Webapi\Controller\Rest\Interceptor->Magento\Framework\Interception\{closure}(Object(Magento\Framework\App\Request\Http))
#32 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/generated/code/Magento/Webapi/Controller/Rest/Interceptor.php(23): Magento\Webapi\Controller\Rest\Interceptor->___callPlugins('dispatch', Array, Array)
#33 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/framework/App/Http.php(116): Magento\Webapi\Controller\Rest\Interceptor->dispatch(Object(Magento\Framework\App\Request\Http))
#34 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/generated/code/Magento/Framework/App/Http/Interceptor.php(23): Magento\Framework\App\Http->launch()
#35 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/framework/App/Bootstrap.php(264): Magento\Framework\App\Http\Interceptor->launch()
#36 /chroot/home/a38cb886/5dae601e98.nxcli.io/html/pub/index.php(30): Magento\Framework\App\Bootstrap->run(Object(Magento\Framework\App\Http\Interceptor))
#37 {main} {"exception":"[object] (Magento\\Framework\\Exception\\InputException(code: 0): The address failed to save. Verify the address and try again. at /chroot/home/a38cb886/5dae601e98.nxcli.io/html/vendor/magento/module-quote/Model/ShippingAddressManagement.php:122)"} []
Any help or thoughts? I can't process orders so I'm stuck.
Thanks.
===
Update.
Some additional answers:
Here's the content of the aroundSaveAddressInformation
method in ShippingInformation class (WeltPixel\GA4\Plugin\ServerSide\ShippingInformation):
public function aroundSaveAddressInformation(
\Magento\Checkout\Model\ShippingInformationManagement $subject,
\Closure $proceed,
$cartId,
$addressInformation
) {
$result = $proceed($cartId, $addressInformation);
if (!$this->ga4Helper->isServerSideTrakingEnabled() || !$this->ga4Helper->shouldEventBeTracked(\WeltPixel\GA4\Model\Config\Source\ServerSide\TrackingEvents::EVENT_ADD_SHIPPING_INFO)) {
return $result;
}
/** @var \Magento\Quote\Model\Quote $quote */
$quote = $this->quoteRepository->getActive($cartId);
$shippingDescription = $quote->getShippingAddress()->getShippingDescription();
$addShippingInfoEvent = $this->addShippingInfoBuilder->getAddShippingInfoEvent($quote, $shippingDescription);
$this->ga4ServerSideApi->pushAddShippingInfoEvent($addShippingInfoEvent);
return $result;
}
I also get a lot of deprecation notices on composer update.
PHP Deprecated: Return type of Symfony\Component\Console\Helper\HelperSet::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/vendor/symfony/console/Helper/HelperSet.php on line 112
Deprecated: Return type of Symfony\Component\Console\Helper\HelperSet::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/vendor/symfony/console/Helper/HelperSet.php on line 112
Deprecation Notice: strlen(): Passing null to parameter #1 ($string) of type string is deprecated in phar:///usr/bin/composer1/vendor/justinrainbow/json-schema/src/JsonSchema/Constraints/Constraint.php:48
Deprecation Notice: Return type of Composer\Repository\ArrayRepository::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/src/Composer/Repository/ArrayRepository.php:206
Deprecation Notice: Return type of Composer\Repository\ArrayRepository::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/src/Composer/Repository/ArrayRepository.php:206
Deprecation Notice: Return type of Composer\Repository\ArrayRepository::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/src/Composer/Repository/ArrayRepository.php:206
Deprecation Notice: Return type of Composer\DependencyResolver\Pool::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/src/Composer/DependencyResolver/Pool.php:175
Deprecation Notice: Return type of Symfony\Component\Finder\Finder::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/vendor/symfony/finder/Finder.php:675
Deprecation Notice: Return type of Symfony\Component\Finder\Finder::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/vendor/symfony/finder/Finder.php:732
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\FilterIterator::rewind() should either be compatible with FilterIterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/vendor/symfony/finder/Iterator/FilterIterator.php:30
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\FileTypeFilterIterator::accept() should either be compatible with FilterIterator::accept(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/vendor/symfony/finder/Iterator/FileTypeFilterIterator.php:42
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getChildren() should either be compatible with RecursiveDirectoryIterator::getChildren(): RecursiveDirectoryIterator, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php:85
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::rewind() should either be compatible with FilesystemIterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php:113
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::current() should either be compatible with FilesystemIterator::current(): SplFileInfo|FilesystemIterator|string, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/vendor/symfony/finder/Iterator/RecursiveDirectoryIterator.php:65
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator::accept() should either be compatible with FilterIterator::accept(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php:55
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator::hasChildren() should either be compatible with RecursiveIterator::hasChildren(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php:71
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator::getChildren() should either be compatible with RecursiveIterator::getChildren(): ?RecursiveIterator, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/vendor/symfony/finder/Iterator/ExcludeDirectoryFilterIterator.php:76
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\FilterIterator::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/vendor/symfony/finder/Iterator/FilterIterator.php:30
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\FilenameFilterIterator::accept() should either be compatible with FilterIterator::accept(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/vendor/symfony/finder/Iterator/FilenameFilterIterator.php:28
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\PathFilterIterator::accept() should either be compatible with FilterIterator::accept(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/vendor/symfony/finder/Iterator/PathFilterIterator.php:27
Deprecation Notice: Return type of Composer\Repository\ArrayRepository::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/src/Composer/Repository/ArrayRepository.php:206
Deprecation Notice: Return type of Composer\Repository\CompositeRepository::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/src/Composer/Repository/CompositeRepository.php:139
Loading composer repositories with package information
Warning from https://repo.packagist.org: Support for Composer 1 is deprecated and some packages will not be available. You should upgrade to Composer 2. See https://blog.packagist.com/deprecating-composer-1-support/
Info from https://repo.packagist.org: #StandWithUkraine
Updating dependencies (including require-dev)
Deprecation Notice: Return type of Composer\DependencyResolver\RuleSet::getIterator() should either be compatible with IteratorAggregate::getIterator(): Traversable, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/src/Composer/DependencyResolver/RuleSet.php:114
Deprecation Notice: Return type of Composer\DependencyResolver\RuleSet::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/src/Composer/DependencyResolver/RuleSet.php:99
Deprecation Notice: Return type of Composer\DependencyResolver\Decisions::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/src/Composer/DependencyResolver/Decisions.php:155
Deprecation Notice: Return type of Composer\DependencyResolver\Decisions::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/src/Composer/DependencyResolver/Decisions.php:165
Deprecation Notice: Return type of Composer\DependencyResolver\Decisions::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/src/Composer/DependencyResolver/Decisions.php:160
Deprecation Notice: Return type of Composer\DependencyResolver\Decisions::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/src/Composer/DependencyResolver/Decisions.php:170
Deprecation Notice: Return type of Composer\DependencyResolver\Decisions::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/src/Composer/DependencyResolver/Decisions.php:150
Deprecation Notice: Return type of Composer\DependencyResolver\Decisions::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/src/Composer/DependencyResolver/Decisions.php:145
Deprecation Notice: Return type of Composer\DependencyResolver\RuleSetIterator::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/src/Composer/DependencyResolver/RuleSetIterator.php:36
Deprecation Notice: Return type of Composer\DependencyResolver\RuleSetIterator::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/src/Composer/DependencyResolver/RuleSetIterator.php:46
Deprecation Notice: Return type of Composer\DependencyResolver\RuleSetIterator::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/src/Composer/DependencyResolver/RuleSetIterator.php:41
Deprecation Notice: Return type of Composer\DependencyResolver\RuleSetIterator::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/src/Composer/DependencyResolver/RuleSetIterator.php:89
Deprecation Notice: Return type of Composer\DependencyResolver\RuleSetIterator::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/src/Composer/DependencyResolver/RuleSetIterator.php:70
Package operations: 0 installs, 1 update, 0 removals
Deprecation Notice: Return type of Symfony\Component\Finder\Iterator\DepthRangeFilterIterator::accept() should either be compatible with FilterIterator::accept(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in phar:///usr/bin/composer1/vendor/symfony/finder/Iterator/DepthRangeFilterIterator.php:41
I should mention that I Nexcess did an upgrade for me in size and perhaps when things were copied, the wrong files were copied - my previous site doesn't have these errors, so I'm also going to go back to them. As I think through the means to determine and debug this, that's the difference....
Also,I'm surprised that a composer update doesn't solve this issue - I would have expected it to remove old code and implement the new...
Thank you!
Hi,
Apologies - thought I put things in the right place (new to StackExchange...)
Yes, Production environment....
Here's the contents of composer.json:
{
"name": "magento/project-community-edition",
"description": "eCommerce Platform for Growth (Community Edition)",
"type": "project",
"license": [
"OSL-3.0",
"AFL-3.0"
],
"config": {
"allow-plugins": {
"dealerdirect/phpcodesniffer-composer-installer": true,
"laminas/laminas-dependency-plugin": true,
"magento/*": true
},
"preferred-install": "dist",
"sort-packages": true
},
"version": "2.4.5-p1",
"require": {
"accuratetax/tax": "^1.2",
"ambab/module-storeorderprefix": "^1.0",
"fooman/connect-sub-m2": "^8.0",
"fooman/printorderpdf-m2": "^3.3",
"fooman/sameorderinvoicenumber-m2": "^3.0",
"hexamarvel/module-attachments": "^1.0",
"magento/composer-dependency-version-audit-plugin": "~0.1",
"magento/composer-root-update-plugin": "~2.0",
"magento/product-community-edition": "2.4.6",
"mageplaza/magento-2-blog-extension": "^4.1",
"magevision/module-admin-category-product-link": "^2.4",
"magevision/module-admin-category-product-thumbnail": "^2.4",
"mageworx/module-seosuiteultimate": "^2.35",
"mirasvit/module-product-action": "*",
"sparsh/magento-2-order-comments-extension": "^1.3",
"square/module-squareup-omni": "^1.14",
"stripe/stripe-payments": "^3.3",
"trustpilot/module-reviews": "^2.6",
"yotpo/magento2-module-yotpo-loyalty": "^1.3",
"yotpo/module-yotpo": "^4.0"
},
"autoload": {
"exclude-from-classmap": [
"**/dev/**",
"**/update/**",
"**/Test/**"
],
"files": [
"app/etc/NonComposerComponentRegistration.php"
],
"psr-0": {
"": [
"app/code/",
"generated/code/"
]
},
"psr-4": {
"Magento\\": "app/code/Magento/",
"Magento\\Framework\\": "lib/internal/Magento/Framework/",
"Magento\\Setup\\": "setup/src/Magento/Setup/"
}
},
"require-dev": {
"allure-framework/allure-phpunit": "^2",
"dealerdirect/phpcodesniffer-composer-installer": "^0.7",
"dg/bypass-finals": "^1.4",
"friendsofphp/php-cs-fixer": "^3.8",
"lusitanian/oauth": "^0.8",
"magento/magento-coding-standard": "*",
"magento/magento2-functional-testing-framework": "^4.2.1",
"pdepend/pdepend": "^2.10",
"phpmd/phpmd": "^2.12.0",
"phpstan/phpstan": "^1.9",
"phpunit/phpunit": "^9.5",
"sebastian/phpcpd": "^6.0",
"symfony/finder": "^5.4"
},
"conflict": {
"gene/bluefoot": "*"
},
"autoload-dev": {
"psr-4": {
"Magento\\PhpStan\\": "dev/tests/static/framework/Magento/PhpStan/",
"Magento\\Sniffs\\": "dev/tests/static/framework/Magento/Sniffs/",
"Magento\\TestFramework\\Inspection\\": "dev/tests/static/framework/Magento/TestFramework/Inspection/",
"Magento\\TestFramework\\Utility\\": "dev/tests/static/framework/Magento/TestFramework/Utility/",
"Magento\\Tools\\": "dev/tools/Magento/Tools/",
"Magento\\Tools\\Sanity\\": "dev/build/publication/sanity/Magento/Tools/Sanity/"
}
},
"minimum-stability": "stable",
"prefer-stable": true,
"repositories": {
"mirasvit-mpa2": {
"type": "composer",
"url": "https://packages.mirasvit.com/"
},
"fooman": {
"type": "composer",
"url": "https://customer-repos.fooman.co.nz/"
},
"mageworx_packages": {
"type": "composer",
"url": "https://packages.mageworx.com/"
},
"mageworx": {
"type": "artifact",
"url": "/home/a38cb886/mageworx/extensions"
},
"0": {
"type": "composer",
"url": "https://repo.magento.com/"
}
},
"extra": {
"magento-force": "override"
}
}
Thanks.
4/2 - 10amPST - Yet another update. It turns out that Nexcess had 2 composer commands, and unfortunately, it never occurred to me to check. The output and composer deprecation errors above are all due to the composer command using composer 1.x. I switched to composer 2.x and all but one of the deprecation errors are gone, of course.
So this leaves me back to the original issue of address validation errors, including a webapi error. Because the specific code goes by so fast, I'm not even sure where to look for the error log to provide a hint of exactly where the fault is, however I still have Tu's code in place, which points to the info reported above.
Bottom line, there's still a validation error that prevents moving from the address screen to the payment screen and orders cannot be completed.
Thanks.
Hi All,
I'm marking this answered. I've traced the issue (with lots of help!) to a module (AccurateTax) which is now upgraded.
And since I'm mentioning AccurateTax, I also need to say that once the issue was raised to them, they turned the fix around within 1 hour! Awesome service!
So this is fixed. I didn't delete the question, so that anyone else coming across this will see the issue and the solution.
Thanks everyone who looked, answered and helped.
WeltPixel\GA4\Plugin\ServerSide\ShippingInformation