Fix Magento Reset Password Error – Fatal error: Call to a member function setCustomerId()

We recently had users report issues when resetting their password via the magento customer area.

The error message users were getting was:

Fatal error: Call to a member function setCustomerId() on a non-object in /app/code/core/Mage/Customer/controllers/AccountController.php on line 587

Technical breakdown

When a user resets their password a series of functions are called, certain parameters of this process are included in magento theme and config files.

In this case , in a previous magento update the custom magento theme had not been update to include new password reset functions.

The Fix

There’s actually a couple of options here.

1. Update Your customer.xml

You can update your custom themes customer.xml config file (/app/design/frontend/<your_theme_package>/<your_theme_name>/layout/customer.xml) with the new functions

<customer_account_resetpassword translate=”label”>

<label>Reset a Password</label>
<remove name=”right”/>
<remove name=”left”/>
<reference name=”head”>
<action method=”setTitle” translate=”title” module=”customer”>
<title>Reset a Password</title>
</action>
</reference>

<reference name=”root”>
<action method=”setTemplate”>
<template>page/1column.phtml</template>
</action>
<action method=”setHeaderTitle” translate=”title” module=”customer”>
<title>Reset a Password</title>
</action>
</reference>

<reference name=”content”>
<block type=”customer/account_resetpassword” name=”resetPassword” template=”customer/form/resetforgottenpassword.phtml”/>
</reference>

</customer_account_resetpassword>

1. Delete Your Custom customer.xml

If your theme doesn’t include any specific custom config or layout settings you can safely delete your customer.xml file located at /app/design/frontend/<your_theme_package>/<your_theme_name>/layout/customer.xml

If you delete this file magento will load the default config options (with the updates) from the factory default magento theme.  /app/design/frontend/base/default/layout/customer.xml

Remember to flush / refresh your magento config via teh administration area, this will force the customer.xml file to be reloaded. Let us know if this fix helps you.

No votes yet.
Please wait...

Leave a Comment

Your email address will not be published. Required fields are marked *