Zend Framework Validator Chain messages
===

Struggling to understand why my validator chain is showing the incorrect message for the value I type in.

Currently my model's code is making the incorrect message appear when I type in non-identical passwords instead of just the expected 3rd message ('*Please retype password between 8-25 alphanumeric characters and matching the first password*' when expecting '*Retyped password must match first.*') when i type in mismatched passwords of 8 -25 characters long. 

$password2 is the one giving issues

Also unsure if the indentical validator is working due to this problem.

Zend Framework version 1.11

Specific code chunk related to above

    $password2 = new Zend_Form_Element_Password('password2');
    $password2->setAttrib('size', 25);
    $password2->setRequired(true);
    $validatorChain2 = new Zend_Validate();
    $validatorChain2->addValidator(new Zend_Validate_StringLength(array('min' => 8,'max' => 25)), true);
    $validatorChain2->addValidator(new Zend_Validate_Alnum(false), true);
    $validatorChain2->addValidator(new Zend_Validate_Identical('password1'), true);
    $password2->addValidator($validatorChain2);
    $password2->addErrorMessage('Please retype password between 8-25 alphanumeric characters and matching the first password');
    $password2->addErrorMessage('Passwords can only be alphanumeric characters.');
            $password2->addErrorMessage('Retyped password must match first.');

Full model code listing

    class Application_Model_RegisterNewAccount extends Zend_Form
    {

        public function __construct($options = null)
        {
            // TODO: The errors are been grouped together at the top of the page now but the original error messages below each field need to be removed
            parent::__construct($options);

            $this->setName('newaccountregistration');
            $this->setMethod('post');
            $this->setAction($options['action']);   // Variable action passed via parameter array for argument 'action'

            $email = new Zend_Form_Element_Text('email');   // Create form text field
            $email->setAttrib('size', 75);  // Set for, element max size/length
            $email->setRequired(true);  // Make this field a required item

            $validator_email = new Zend_Validate_EmailAddress();
            $email->addValidator($validator_email);   // Set validator type and minimum and maximum size required
            $email->addErrorMessage('Please provide a valid email address');

            $firstname = new Zend_Form_Element_Text('firstname');
            $firstname->setAttrib('size', 35);
            $firstname->setRequired(true);

            $validator_firstname = new Zend_Validate_StringLength(array(1,35));
            $firstname->addValidator($validator_firstname);
            $firstname->addErrorMessage('Please provide your first name between 1-35 characters');

            $surname = new Zend_Form_Element_Text('surname');
            $surname->setAttrib('size', 35);
            $surname->setRequired(true);

            $validator_surname = new Zend_Validate_StringLength(array(1,35));
            $surname->addValidator($validator_surname);
            $surname->addErrorMessage('Please provide your first name between 1-35 characters');

            $password1 = new Zend_Form_Element_Password('password1');
            $password1->setAttrib('size', 25);
            $password1->setRequired(true);
            $validatorChain1 = new Zend_Validate();
            $validatorChain1->addValidator(new Zend_Validate_StringLength(array('min' => 8,'max' => 25)), true);
            $validatorChain1->addValidator(new Zend_Validate_Alnum(false), true);
            $password1->addValidator($validatorChain1);
            $password1->addErrorMessage('Please provide a password between 8-25 alphanumeric characters');
            $password1->addErrorMessage('Passwords can only be alphanumeric characters.');

            $password2 = new Zend_Form_Element_Password('password2');

            $password2->setAttrib('size', 25);
            $password2->setRequired(true);
            $validatorChain2 = new Zend_Validate();
            $validatorChain2->addValidator(new Zend_Validate_StringLength(array('min' => 8,'max' => 25)), true);
            $validatorChain2->addValidator(new Zend_Validate_Alnum(false), true);
            $validatorChain2->addValidator(new Zend_Validate_Identical('password1'), true);
            $password2->addValidator($validatorChain2);
            $password2->addErrorMessage('Please retype password between 8-25 alphanumeric characters and matching the first password');
            $password2->addErrorMessage('Passwords can only be alphanumeric characters.');
            $password2->addErrorMessage('Retyped password must match first.');

            $submit = new Zend_Form_Element_Submit('submit');   // Added submit button
            $submit->setLabel('Register');
            $submit->removeDecorator('DtDdWrapper'); // Remove the default DD div wrapper

            $this->setDecorators( array( array('ViewScript',
                array('viewScript' => '_register.phtml'))));    // The form html page

            $this->addElements(array($email, $firstname, $surname, $password1, $password2, $submit));   // Add all the form elements
        }

    }

