Craft 3 User Registration form errors not showing for custom fields I've built a front end user registration form and everything is working well with it except that it's not showing errors for my custom fields. They're set as required in the CP, but the form submits even if they aren't filled in. When the standard required fields aren't filled in the for returns an error but none for the custom fields.

I understand first and last name can't be required. In the example below my custom required fields are participantPhone and participantCity.

&lt;form method="post" accept-charset="UTF-8"&gt;
  &lt;div class="form-group signup-form"&gt;
      {{ csrfInput() }}
      &lt;input type="hidden" name="action" value="users/save-user"&gt;
      {{ redirectInput('sign-up-ty') }}

      {% macro errorList(errors) %}
        {% if errors %}
          &lt;ul class="errors"&gt;
            {% for error in errors %}
              &lt;li&gt;{{ error }}&lt;/li&gt;
            {% endfor %}
          &lt;/ul&gt;
        {% endif %}
      {% endmacro %}

      {% from _self import errorList %}

      &lt;input id="username" class="form-control" type="text" name="username" {%- if user is defined %} value="{{ user.username }}"{% endif -%} placeholder="username"&gt;

      {% if user is defined %}
        {{ errorList(user.getErrors('username')) }}
      {% endif %}

      &lt;input id="firstName" class="form-control" type="text" name="firstName" {%- if user is defined %} value="{{ user.firstName }}"{% endif -%} placeholder="first name"&gt;

      &lt;input id="lastName" class="form-control" type="text" name="lastName" {%- if user is defined %} value="{{ user.lastName }}"{% endif -%} placeholder="last name"&gt;

      &lt;input id="email" class="form-control" type="text" name="email"{%- if user is defined %} value="{{ user.email }}"{% endif %} placeholder="email"&gt;

      {% if user is defined %}
        {{ errorList(user.getErrors('email')) }}
      {% endif %}

      &lt;input id="password" class="form-control" type="password" name="password" placeholder="password"&gt;

      {% if user is defined %}
        {{ errorList(user.getErrors('password')) }}
      {% endif %}

      &lt;input id="participantPhone" class="form-control" type="text" name="fields[participantPhone]" {%- if user is defined %} value="{{ user.participantPhone }}"{% endif -%} placeholder="phone"&gt;

      {% if user is defined %}
        {{ errorList(user.getErrors('participantPhone')) }}
      {% endif %}

      &lt;input id="participantCity" class="form-control" type="text" name="fields[participantCity]" {%- if user is defined %} value="{{ user.participantCity }}"{% endif -%} placeholder="city"&gt;

      {% if user is defined %}
        {{ errorList(user.getErrors('participantCity')) }}
      {% endif %}

      &lt;input id="register-button" class="btn btn-outline-primary" type="submit" value="Register"&gt;
    &lt;/div&gt;
  &lt;/form&gt;
From the code

// Don't validate required custom fields if it's public registration
if (!$thisIsPublicRegistration) {
    $user-&gt;setScenario(Element::SCENARIO_LIVE);
}


You have to create a custom controller