2

I get this error when trying to register an account :

No such entity with customerId = 13818

I think it might be some old custom attribute that is the root of the problem.

How can I clean the customer_eav_table and customer_eav_website tables from all custom attributes ? I would like to clean everything up.

Magento 2.2.6

3 Answers 3

3

I think the answer is actually here github issue - 23411, meaning it is a false positive.

I have created a patch that downgrades the message from 'error' to 'info'. So that visibility is maintained, but severity is downgraded.
file: patches/no_entity_with_customer_id.patch

--- Model/Session.php 2019-11-13 09:59:47.214035581 +0000 +++ Model/Session.php 2019-11-13 10:25:54.187217836 +0000 @@ -274,7 +274,13 @@ $quote = $this->quoteRepository->getActiveForCustomer($customerId); $this->setQuoteId($quote->getId()); } catch (\Magento\Framework\Exception\NoSuchEntityException $e) { - $this->logger->critical($e); + $this->logger->info( + 'Failed to find active quote for customer', + [ + 'customerId' => $customerId, + 'error' => $e->getMessage(), + ] + ); } } else { $quote->setIsCheckoutCart(true); 

Then add the following to your patches configuration

 "patches": { "magento/module-checkout": { "no such entity with customerId, false positive (https://github.com/magento/magento2/issues/23411#issuecomment-508426676)": "patches/no_entity_with_customer_id.patch" } } 

this would require cweagans/composer-patches to be installed.

3
  • Isn't the info level written to the system.log in production as well? This would not really solve the problem. Commented Nov 13, 2019 at 14:44
  • It depends what your log level is. If you are only logging errors on production, then this would stop it from being logged. The point is this isn't an error. By downgrading this to an info output, it stops it being identified as an error that needs attention Commented Nov 13, 2019 at 20:57
  • Magento also logs info by default in production mode. It doesn't log debug. Commented Nov 14, 2019 at 7:19
1

This will now be fixed in the upcoming Magento 2.3.5 release, according to github.com/magento/magento2/issues/23411#issuecomment-554132357. The implementation simply gets rid of any such logging, as it was unnecessary to log this exception at all.

0

For info, there no customer_eav_table, but customer_eav_attribute instead.

I suggest you to try first this solution.

You ask how to remove customer custom attribute :

app/code/{Vendor}/{Module}/Setup/InstallData.php

If you have an existing module, try UpgradeData.php instead of InstallData.php

<?php namespace {Vendor}\{Module}\Setup; use Magento\Eav\Setup\EavSetup; use Magento\Eav\Setup\EavSetupFactory; use Magento\Framework\Setup\InstallDataInterface; use Magento\Framework\Setup\ModuleContextInterface; use Magento\Framework\Setup\ModuleDataSetupInterface; class InstallData implements InstallDataInterface { private $eavSetupFactory; public function __construct(EavSetupFactory $eavSetupFactory) { $this->eavSetupFactory = $eavSetupFactory; } public function install(ModuleDataSetupInterface $setup, ModuleContextInterface $context){ $eavSetup = $this->eavSetupFactory->create(['setup' => $setup]); $eavSetup->removeAttribute( \Magento\Customer\Model\Customer::ENTITY, 'attribute_name'); //Attribute name here } } 
2
  • Thanks! I don't have a custom module. I've migrated customers from magento 1.9 and I think the customer attributes was created with that tool. Now I just want to start over again. Can I truncate customer_eav_attribute and customer_eav_website and Import the default values? If I can, where can I find the sql that creates the default database when setting up magento2? Commented Oct 10, 2018 at 12:54
  • If you migrated from M1 to M2, I'm afraid it creates problems if you truncate these tables. First do some backup, and try magento.stackexchange.com/questions/155922/… Commented Oct 10, 2018 at 13:03

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.