What would make MailStream Plus see many, many, input records with invalid ZIP Codes?

Product affected: MailStream Plus™, all platforms, all versions


What would make MailStream Plus (MSP) see many input records with invalid ZIP Codes? 
Maybe as many, or more, than there are records seen with valid ZIP Codes? 
Especially if there should be few, if any, invalid ZIP Codes records in the input file?
And possibly the 'invalid records' are just blank?


Invalid ZIP Code records may be because the ZIP IN parameter is pointing to the wrong location for the ZIP Code in the input Name-Address file.
Or possibly the MSP job is pointing to the wrong Input Name-Address File, which has the ZIP location in a different position?

But it may also be due to a mismatch between the record length specified on the FILEDF MSSTIN parameter, and the actual record length in the input file.  This is mainly seen on Windows/UNIX/Linux platforms, and the mismatch discussion below is about those platforms.  But similar incorrect settings can cause the same thing to occur on other platforms.

Say the input records are actually 200 bytes long, and the ZIP IN parameter correctly says the ZIP Code is in position 001. 
But say the FILEDF MSSTIN incorrectly says the record length is 150 bytes.
What will happen is that MailStream Plus (MSP) will read in 150 bytes per the FILEDF MSSTIN, and see the ZIP Code in position 001.  This record would be seen as having a valid ZIP Code.
But then, MSP will continue reading the ‘next record’ starting at byte 151, up to the record’s real end-of-record indicator at byte 200.  This 50-byte ‘record’ will not have a valid ZIP Code in position 001 of 'it', so will be invalid.
The same thing will then happen as MSP starts to read the real second record.  The first 150 byte records will have a valid ZIP Code, and the next 50-byte ‘mini-record’ will not.



UPDATED: March 13, 2019
Verify that the ZIP IN parameter is pointing to the correct location for the ZIP Code.
Consider is the correct input file being used?

Verify that the input record’s lengths are correctly given on the FILEDF MSSTIN.
(For Line Sequential records on platforms such as Windows, a FILEDF MSSTIN length greater than the actual record length can be used.  That's because the end of record indicator on the records will make them end at the correct length.)

On other platforms such as z/OS, also verify that the DD for the MSSTIN input file has the correct length.