Change email address on front end Some similar posts on here already but I'm still struggling. My code looks fine as far as I can tell? Page just reloads with no changes to the email (other fields change fine). I'm missing something right?

&lt;form method="post" accept-charset="UTF-8" enctype="multipart/form-data" class="js-validate"&gt;
{{ getCsrfInput() }}
&lt;input type="hidden" name="action" value="users/saveUser"&gt;
&lt;input type="hidden" name="redirect" value="{{ craft.request.url ~ '/saved' }}"&gt;
&lt;input type="hidden" name="userId" value="{{ currentUser.id }}"&gt;
&lt;input type="hidden" name="password" value="{{ currentUser.password }}"&gt;

&lt;h1&gt;{{ "My Profile"|translate }}&lt;/h1&gt;
&lt;ol&gt;
    &lt;li&gt;
        &lt;label for="firstName" class="hidden"&gt;{{ "First Name"|translate }}&lt;sup&gt;*&lt;/sup&gt;&lt;/label&gt;
        &lt;input type="text" name="firstName" id="firstName" placeholder="{{ "First Name"|translate }}" value="{{ currentUser.firstName }}" required&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;label for="lastName" class="hidden"&gt;{{ "Last Name"|translate }}&lt;sup&gt;*&lt;/sup&gt;&lt;/label&gt;
        &lt;input type="text" name="lastName" id="lastName" placeholder="{{ "Last Name"|translate }}" value="{{ currentUser.lastName }}" required&gt;
    &lt;/li&gt;
    &lt;li&gt;
        {% if currentUser.unverifiedEmail %}
            &lt;div class="well"&gt;
                &lt;h5&gt;{{ "Email verification pending"|translate }}&lt;/h5&gt;
                &lt;p&gt;{{ "We sent a verification email to"|translate }} &lt;a href="{{ currentUser.unverifiedEmail }}"&gt;{{ currentUser.unverifiedEmail }}&lt;/a&gt;. {{ "Until this email is verified, we’ll continue to use your previous email"|translate }} (&lt;a href="{{ currentUser.email }}"&gt;{{ currentUser.email }}&lt;/a&gt;).&lt;/p&gt;
            &lt;/div&gt;
        {% else %}
            &lt;label for="email" class="hidden"&gt;Email&lt;sup&gt;*&lt;/sup&gt;&lt;/label&gt;
            &lt;input type="email" name="email" id="email" placeholder="{{ "Email"|translate }}" value="{{ currentUser.email }}" required&gt;
        {% endif %}
    &lt;/li&gt;
    &lt;li&gt;
        &lt;label for="userTownCity" class="hidden"&gt;{{ "Town/City"|translate }}&lt;/label&gt;
        &lt;input type="text" name="fields[userTownCity]" id="userTownCity" placeholder="{{ "Town/City"|translate }}" value="{{ currentUser.userTownCity }}"&gt;
    &lt;/li&gt;
    &lt;li&gt;
        &lt;label for="userPhoneNumber" class="hidden"&gt;{{ "Phone Number"|translate }}&lt;/label&gt;
        &lt;input type="text" name="fields[userPhoneNumber]" id="userPhoneNumber" placeholder="{{ "Phone Number"|translate }}" value="{{ currentUser.userPhoneNumber }}"&gt;
    &lt;/li&gt;
&lt;/ol&gt;
&lt;input type="submit" value="Save Changes" class="button button--fw"&gt;
Thanks to billythekid's suggestion, adding a password field creates an elevated session, and solves my problem.

&lt;input type="password" name="password" placeholder="Password" required&gt;


Actually I don't think it's that intrusive, and it's a good security step that should generally be encouraged when making any profile edits.