Assembly / HLASM · Message ID
What does IEC020I I/O Error Message mean in Assembly / HLASM?
Issued when abend S001 occurs, reporting the specific cause via a return code in the message text (0 through 6): an LRECL/BLKSIZE mismatch, a permanent I/O error with no SYNAD exit coded (or EROPT left at its ABE default), a CLOSE error, an unacceptable QSAM error, a GET issued after end-of-file, or — on z/OS UNIX files — a POINT macro positioning error. It is not always a physical I/O failure; several of the documented return codes describe logical or programming errors rather than hardware faults.
Issued when abend S001 occurs, reporting the specific cause via a return code in the message text (0 through 6): an LRECL/BLKSIZE mismatch, a permanent I/O error with no SYNAD exit coded (or EROPT left at its ABE default), a CLOSE error, an unacceptable QSAM error, a GET issued after end-of-file, or — on z/OS UNIX files — a POINT macro positioning error. It is not always a physical I/O failure; several of the documented return codes describe logical or programming errors rather than hardware faults.
Read the return code in the message text first to identify which of the several distinct causes actually applies — for a genuine I/O error, code a SYNAD routine or set EROPT=ACC/SKP if the condition is expected; for a GET-after-EOF or an LRECL/BLKSIZE mismatch, fix the program logic or dataset attributes directly instead, since those aren't hardware faults and won't be helped by a SYNAD exit.