hook_form_alter isn't being called when node fails validation I'm noticing that hook_form_alter isn't being called when a page has errors that display a message from form_set_error.  Changes to my form aren't taking effect, and the error page is effectively broken.

I've tried to output a dpm statement in hook_form_alter, but it isn't appearing on the error page.

Is there a way to get drupal to call the hook and alter the form?
Forms are cached in Drupal so the form is loaded once (where your form_alter runs) and then it's loaded from cache to be reloaded when there are validation errors.

You should use an #after_build callback, which always gets run.

Just remember to return $element in your #after_build callback or you'll be getting WSODs.