Media Manager return codes

When the media manager is invoked and errors are found or a termination routine is called, the media manager provides a return code to identify the nature of the failure.

The media manager provides a return code in register 15. It also puts this return code in the MMPRETCD field of the MMPB.

Return codes have the following format:
     ccccffss

      where:
      cccc is the return code
      ff identifies the module that detected the error
      ss is the status byte

The status byte in the ss field has the following meanings:

ss field Error Description
X'00' No error.
X'04' Warning.
X'08' Extent error.
X'0C' Logic error.
X'10' Permanent I/O error.
X'14' Error cannot be determined.

In combination with one of these status bytes, return codes in the cccc field indicate the following errors (the ff field value has been listed where this value is permanent):

ss cccc ff Error Description
00 0000 No errors.
04 0000 No errors. DIE exit is receiving control in SRB mode.
  0004 0A For MMCALL OP=RDWR VOLATILE=YES, device is not volatile cache or user does not have volatile cache token (MMIVCT=0). Normal I/O (without use of volatile cache) is done instead.
  0084 SYNCIO=YES specified and IO completed synchronously. User exits will not be called. MMCALL request completed successfully.
  0105 Related error. This error might set in response to an MMCALL dual logging request in an MMRELIST array entry in the field MMRELIST_RETCODE. This return code indicates that processing for the associated data set has been terminated due to a more severe error associated with the "other data set".
08 0010 The end of a CI is out of its extent.
  0014 Extent not found.
  0017 The MMCNVT macro was issued specifying the EDBADDR parameter which is inconsistent with the EDBADDR parameter which was specified on MMSRV CONNECT.
  0018 Extent not active.
  001C Invalid record number. Returned from MMCNVT CCHHR to indicate that either the R value is zero or greater than the number of records per track for the data set.
  0420 Overlapping extents.
  0424 Invalid ending RBA.
  0428 Block size is too large for the device.
  042C Inconsistent CI sizes.
0C 0001 Locate ASCB failed.
  0004 18 The main MMIB was not passed, or there was no MMRE chain, or the user storage was not passed in.
  0004 19 GETMAIN Failure.
  0008 Two reads to the same buffer.
  0008 19 PURGE Failure.
  000C 06 An error is detected with one of the MMIBs specified:
  • MMIB eye catcher is incorrect.
  • The same MMIB is passed for both entries in the MMIBLIST.
  • MMIB attributes of the two MMIBs do not match.
  000C 19 The main MMIB was not passed.
  000C An MMRE specifies multiple CIs to be sorted.
  0010 MMRE specifies output but MMIB specifies input only.
  0010 0C Invalid return code from user exit. A return code of 8 from a user die exit is not supported when an MMIBLIST is specified.
  0010 11 Invalid return code from user exit. A return code of 8 from a user die exit is not supported when an MMIBLIST is specified.
  0010 17 MMIB specifies READ only, on an update write request.
  0010 Invalid return code from user exit.
  0016 02 Format write requested for replicated indexes. A replicated index format write request is not valid.
    03  
    15  
  001C Load real address error. Buffers not fixed.
  001C 02 Extended format request not allowed.
  001C 03 Extended format request not allowed.
  0020 Starting RBA not on CI boundary—preformat only.
  0024 03 MMCALL OP=FORMAT, invalid request element—starting RBA is greater than ending RBA specified in MMRE.
  0024 1C Insufficient storage for channel program because of media manager storage constraints.
    1D  
    1E  
    1F  
  0028 15 MMCALL OP=WRITE was specified with format write and VOLATILE=YES.
  002C PARMADDR=64BIT is set but 64-bit buffer addresses are not indicated. BUFAD= parameter must specify VIRTUAL64, REAL64, ENCRYPT64, or READENCRYPT64 when PARMADDR=64BIT is specified.
  0030 14 No volatile cache token provided for MMCAL OP=COMMIT.
Note: Volatile cache token is ignored by OP=DISCARD.
  0034 14 MMIB not pointing to an EDB.
  0034 Control block invalid (possible invalid MMGRCT).
  0038 14 Error in media manager building of AOMSERV parameter list for MMCALL OP=COMMIT or OP=DISCARD.
  003C 14 Error in media manager building of extent address list for MMCALL OP=COMMIT or OP=DISCARD.
  0040 The real buffer address list contains addresses that are zeros.
  0044 The real buffer address list contains addresses that are not at 4K-byte boundaries.
  0048 Real buffer address list is provided for CIs that are not n*4K bytes.
  0050 For OP=FORMAT, the calculated CCHH is outside the extent.
  0075 Data buffer encryption operation failed due to BCF error return code.
  0076 Encryption buffer decryption operation failed due to BCF error return code.
  0080 MirrorToSec=YES specified, and bypass extent serialization not specified (for example, MMSRV CONNECT,BYPEXTSER=NO specified or defaulted).
  0100 Real buffer addresses are not allowed for access to replicated index data sets.
  0101 Encryption is not supported for preformat (OP=FORMAT) or IO to replicated index data sets.
  0102 Data Set to be processed as an encrypted data set (for example, MMSRV CONNECT,BYPASSENCRYPTION=NO specified or defaulted), and MMRE is not in encryption format.
  0104 Encryption format MMRE and reserve bits set on in MMRFLAG3.
  0105 Error used only with dual logging. Used in setting MMREL_RETCODE(x). Indicates that there was an error in processing "the other" data set, and the IO to this data set might not have completed.
  0108 SYNCIO=YES specified and, and bypass extent serialization not specified (for example, MMSRV CONNECT,BYPEXTSER=NO specified or defaulted).
  0109 SYNCIO=YES not supported for format writes.
  010A SYNCIO=YES requires IO buffers be aligned on a minimum of 16 byte boundaries.
  0111 MMCALL OP=REMOVESYNCIOWRITEACCESS was requested, but zHyperLink write access has not been established.
  0112 An invalid MMIB address was specified for MMCALL OP=REMOVESYNCIOWRITEACCESS.
  0115 MMCALL OP=REMOVESYNCIOWRITEACCESS was requested and there is a concurrent establish or remove operation in progress for zHyperLink write access.
  0117 SYNCIO=YES for zHyperLink write requires MIRRORTOSEC=YES.
  0118

MMCALL OP=REMOVESYNCIOWRITEACCESS called for a data set that was not opened for SyncIO writes.

Start of change End of change Start of change0119End of change Start of changeEnd of change Start of changeAn internal error is detected when processing failed I/O for the Consistent Read from Secondary function.End of change
  011E An error was detected in an input MMIBLIST structure. Either the eye catcher was bad or the number of MMIBs is invalid (only values of 1 or 2 are supported).
  011F An error was detected in an input MMRE LIST structure. Either the eye catcher was bad or the number of MMREs is not the same as the number of MMIBs in the input MMIBLIST.
  0120 An MMCALL parameter was specified which is not supported by the MMIBLIST parameter, which is also specified. These parameters include the following:
  • OP=RDWR is the only allowable OP= parameter.
  0121 Specification of a DSSB address in an MMPR when MMIBLIST parameter is specified and is not supported.
  0122 Specification of MMIBLIST with an MMPR requires an MMPR version of at least 10.
  0123 Update writes only (no preformat, no format writes, no reads) with MMIBLIST (for example, dual logging).
  0400 Getmain error for LPMB.
  0408 Insufficient storage supplied for LPMB.
  0410 Getmain error for EDB.
  0418 Insufficient storage supplied for EDB.
  0434 The parameter list is incomplete.
  0438 40 Invalid extended format request.
  043C 40 Stripe number mismatch.
  0440 40 Invalid number of stripes.
  0444 40 Invalid device block specified for the extended format data set.
10 0010 I/O prevented.
  0018 I/O timing parameters specified in an MMPR and the I/O was posted in error with one of the following codes:
  • IOSCOD = 43x. Duplexed I/O request was not started because of the UCB level or not ready device.
  • IOSCOD = 52x. IOS found the I/O request Start Pending in the subchannel, and the driver requests that the I/O request not to be retired (MIH, etc).
  • IOSCOD = 53x. IOS cancelled the I/O request due to an I/O timeout condition.
  0020 11 Permanent I/O error.
  0030 14 Extent address list missing for MMCALL OP=COMMIT or OP=DISCARD.
  0034 14 Volatile cache token has become invalid—data in cache may be lost before MMCALL OP=COMMIT request occurs.
  0038 14 Invalid track format error—data set destroyed or logic error in caller of media manager.
  003C 14 Unable to destage data for MMCALL OP=COMMIT.
  0040 14 MMCALL OP=COMMIT or OP=DISCARD cannot be done because control unit is not volatile cache.
  0040 Hardware pad errors, detected on extended format data set only.
  0050 Relative CI number errors detected in extended format data set suffix during read I/O.
  0060 Block number errors detected in extended format data set suffix during read I/O.
  0078 Inconsistent timestamp detected across records of a CI with more than one block per CI for an extended format data set during read I/O.
  0410 40 AOM failed to obtain volatile token because of AOM/hardware errors.
14 0030 Invalid LPMB.
  0030 IOSCOD = 45x. I/O request abnormally terminated because of a program check, machine check, etc, in IOS or an IOS exit with IOS recovery active.
  0030 Error cannot be determined. The Media Manager FRR routine was unexpectedly entered and it has written diagnostic records to logrec and scheduled a dump. No IO was started, and the user termination routine has not been called.
  0034 Indeterminate error. The Media Manager FRR routine was unexpectedly entered and it has written diagnostic records to logrec and scheduled a dump. At least one channel program was started. It is probable, but not certain, that the user termination routine has been or will be called.
  0034 1C Bad internal pointer detected during channel program build. The ff value indicates the detecting routine:
    1E
  • 1Cx indicates module ICYBLD64
  • 1Ex indicates module ICYPIO64
A system ABEND C0D is issued to take a dump and write logrec records to capture diagnostic information.
Note: The return codes '00341C14'x and '00341E14'x could also identify the "intermediate error" described above in the case that either ICYBLD64 or ICYPIO64 unexpectedly ABEND.
Note: The cccc field X'00xx' indicates MMCALL or MMCNVT requests.

The ff field of the return code identifies the module that detected the error.

ff field Module
ICYMMSRV (Media Manager Services)
ICYMSTAE (Media Manager Services)
01 ICYRDWR
02 ICYFW
03 ICYPFMT
04 ICYRBA
05 ICYCCHHR
06 ICYSTOR
07 ICYSORT
08 ICYBLIST
0C ICYDIE, second entry from IOS
0D ICYPFDIE
0E ICYNRM
0F ICYABN
10 ICYPFAPP
11 ICYPGAD
12 ICYPURG
13 ICYSCHED
14 ICYVCACH
15 ICYWRITE
16 ICYBMFI
18 ICYPIO
19 ICYRCD0
19 ICYPIOPG
1A ICYEXIT
1B ICYTRACE
1C ICYBLD64
1D ICYPF64
1E ICYPIO64
1F ICYREP64
20 ICYBLDRE
Start of change2AEnd of change Start of changeICYREMCPEnd of change
21 ICYEXR64
22 ICYCHR64
23 ICYCIL64
24 ICYNCRPT
25 ICYDCRPT
28 ICYESTAB
29 ICYREMOV
3A ICYDIE, first entry from IOS
40 ICYINIT
41 ICYIEDB
42 ICYILPMB