How to force field validation first, then its values saved durning edit profile?

Unfortunately I didn’t receive any reply. I did it a little different … and it works.

I just combine them both and I have that result which works fine.

add_action( 'user_profile_update_errors', 'validate_steamid_field' , 10, 3);

function validate_steamid_field(&$validation_errors, $update = null, &$user){

    if ( isset( $_FILES['custom_avatar'] ) && !empty($_FILES['custom_avatar']) && file_exists($_FILES['custom_avatar']['tmp_name']) ) { //we check if there file is updated

 $file_extension = substr($_FILES['custom_avatar']["name"], strrpos($_FILES['custom_avatar']["name"], '.') + 1); //get a file extension from name

$user_id = $user->ID; //get user ID;

         $allowed_image_extension = array(
        "png",
        "jpg",
        "jpeg"
    ); //all allowed type files which we want accept in the form

 $fileinfo = @getimagesize($_FILES["custom_avatar"]["tmp_name"]);
    $width = $fileinfo[0]; //get width of uploaded image
    $height = $fileinfo[1];    //get height of uploaded image

         if (! in_array(strtolower($file_extension), $allowed_image_extension)) {
             $_FILES['custom_avatar'] == '';
         $validation_errors->add( 'error', 'wrong format image'); 
        //validate if is wrong format image
        } else ($width < "450" || $height < "450"){
            $_FILES['custom_avatar'] == '';
        $validation_errors->add( 'error', 'image is too small'); 
        //validate if image is too small
         } else {

// There is not any error so we can save them here

 if ( current_user_can( 'edit_user', $user_id ) ) {

 update_user_meta($user_id,'custom_avatar', $_FILES['custom_avatar']['name']);
    }

     }

    return $validation_errors;  
}

I hope it will help somone in the future.