If you get this error when trying to mdadm --add a drive back into a mdadm array, then it's probably because the drive you are trying to add has been partitioned incorrectly. To confirm that this is the cause run fdisk -l on all the drives already in the array.
You will notice that all the drives in the array will have the same results for the second line of output:
64 heads, 32 sectors/track, 476940 cylinders
Note those details for the drives already in the array.
Now run the fdisk -l command again on the drive you are trying to add. The results will most likely be different. To resolve this, run fdisk on the drive you are trying to add to the array. Remove all partitions that you might have created before.
In expert mode (press x) you have the following options:
Expert command (m for help): m
Command action
b move beginning of data in a partition
c change number of cylinders
d print the raw data in the partition table
e list extended partitions
f fix partition order
g create an IRIX (SGI) partition table
h change number of heads
i change the disk identifier
m print this menu
p print the partition table
q quit without saving changes
r return to main menu
s change number of sectors/track
v verify the partition table
w write table to disk and exit
You'll need to use options c, h, and s to match up the settings with the existing drives. Once you've done this recreate a partition on the new drive and write the partition table to the disk and exit. Now you should be able to add the drive back into the array.