This is costing us about $500/day - for the past week or so, since we upgraded from 2.1.0 to 2.1.6. The only way customers can place an order is by creating a new account.
Existing customers try to login and get this message:
"An unspecified error occurred. Please contact us for assistance."
There doesn't seem to be any way to get a more detailed error, nothing shows up in the server logs. Today, we staged the site on a separate domain & upgraded it to 2.1.7 - same freaking problem. No idea how to fix it short of reverting back to 2.1.0. But that was such a bloody nightmare to upgrade - we hate to go there over what seems like a simple fix.
If we could only get a stack trace on this thing - idk.
Missing Columns in customer_entity table: 'failures_num' & 'first_failure'
How? Figured it out by changing the error message returned in [/vendor/magento/module-customer/Controller/Account/LoginPost.php] from "__('An unspecified error occurred. Please contact us for assistance.')" to "$this->messageManager->addError($message);" which finally gave us a descriptive error:
SQLSTATE[42S22]: Column not found: 1054 Unknown column 'failures_num' in 'field list', query was: UPDATE `mg_customer_entity` SET `failures_num` = ?, `first_failure` = ?, `lock_expires` = ? WHERE (entity_id = '1747')
WHY these columns weren't created during migration from 1.9x > 2.1.0 > 2.1.6 > 2.1.7 > idfk. But there it is - hope this helps someone keep hair on their head
Did anyone ever have this issue again? We do have the two Tables failures_num and first_failure in the Database, so this can't be the issue...
I change error log in LoginPost.php to
$this->messageManager->addError($message); would throw an exception because variable $message was not defined.
I then get an error message when login in with a migratet account:
regionId is a required field.
Couldn't agree more! The code says push out a nonsense message for fear of exposing passwords, but surely something could be written to the exception log file to give a clue as to why this is happening.
Correctly it should be "$this->messageManager->addError($e->getMessage());" to see what's occurring.