"Missing required argument $options" After migration from magento 1.9.2.4 to 2.1.3

Go to file var/www/html/vendor/magento/module-customer/Model/Config.php

Change to line 26 it will give detail description about error public function __construct(array $options) to public function __construct($options)

Detail error description

    Exception #0 (Magento\Framework\Exception\LocalizedException): No options found.
    #0 /var/www/html/vendor/magento/module-customer/Model/AttributeMetadataConverter.php(66): Magento\Eav\Model\Entity\Attribute\Source\Config->getAllOptions()
    #1 /var/www/html/vendor/magento/module-customer/Model/Metadata/CustomerMetadata.php(77): Magento\Customer\Model\AttributeMetadataConverter->createMetadataAttribute(Object(Magento\Customer\Model\Attribute))
    #2 /var/www/html/vendor/magento/module-customer/Model/Metadata/CustomerMetadata.php(109): Magento\Customer\Model\Metadata\CustomerMetadata->getAttributeMetadata('assigned_sales_...')
    .
    .
    etc

Then from that description take

#0 /var/www/html/vendor/magento/module-customer/Model/AttributeMetadataConverter.php(66):

Go to above file enter following code before line 66

echo '<pre>';
print_r($attribute->getData());

Then I get list of attribute_ids and see after which attribute_id error is comming take that one.

So I get attribute_id 150 who doesn't getting options.

So I'm not using that attribute_id so i have remove it..

Now my problem is solved and I can see my all migrated customers.

Please revert back all changes made in core files.


I used this solution to solve the problem

  • open phpmyadmin
  • open 'customer_eav_attribute' table
  • find out what attributes are imported looking at rows id

enter image description here

as you can see from id 40 there is a large gap before next id

  • export a table backup ( so you can rollback if needed )
  • delete attributes that are imported but not well applied

in my specific case deleting rows with id 146,285,286,+ has solved the problem