VSAM Return codes: Reasons and Solutions

The complete list of VSAM return codes, reasons, and solutions in one place. This is a complete magic-filled list. You can refer to all solutions in one place and save your precious time.

VSAM Return codes

004(04) – Read past end of file

008(08) – You attempted to store a record with a Duplicate Key, or there is a duplicate record for an alternate index with the unique key option.

012(0C) – You attempted to store a record out of Ascending Key Sequence in Skip-Sequential Mode; the record had a Duplicate Key; for Skip-Sequential processing your GET, PUT, and POINT Requests are not referencing records in Ascending sequence; or, for Skip-Sequential Retrieval, the key requested is lower than the previous key requested. For Shared Resources, the buffer pool is full.

016(10) – Record not found.

020(14) – Record already held in exclusive control by another requester.

024(18) – The record resides on a volume that cannot be mounted.

028(1C) – Data set cannot be extended because VSAM can’t allocate additional Direct-Access Storage Space. Either there is not enough space left to make the secondary allocation or you attempted to increase the size of a data set while processing SHROPT=4 and DISP=SHR.

036(24) – Key Ranges were specified for the data set when it was defined but no range was specified that includes the record to be inserted.

040(28) – Insufficient Virtual Storage to complete the request.

044(2A) – Work area too small.

064(40) – All available strings are in use.

068(44) – You attempted to use a type of processing (Output or Control-Interval Processing) that was not specified when the data set was opened.

074(4A) – Trying to use keys on ESDS or RRDS.

076(4C) – You issued an Addressed or Control-Interval PUT to add to a Key-Sequenced data set, or issued a Control-Interval put to a Relative Record data set.

080(50) – Trying to delete from ESDS.

084(54) – Using OPTCODE=LOC for a PUT.

088(58) – You issued a Sequential GET request without having caused VSAM to be positioned for it, or you changed from Addressed Access to Keyed Access without causing VSAM to be positioned for Keyed-Sequential Retrieval; there was no Sequential PUT insert for a Relative Record data set, or you attempted an illegal switch between forward and backward processing.

92(5C) – A PUT for an update or an ERASE was issued without a previous GET for the update, or a PUTIX was given without a previous GETIX.

96(60) – Changing the Prime Key or Key of Reference when making an update.


100(64) – Trying to change record length.

104(68) – The RPL options are either invalid or conflicting.

108(6C) – The RECLEN is larger than the maximum allowed, equal to, or smaller than the sum of the length and the displacement of the key field. It was not equal to the record (SLOT) size specified for a Relative Record data set.

112(70) – Invalid key length.

116(74) -Trying to update an empty dataset.

120(78) – The request was submitted by the wrong task.

132(84) – An attempt was made in Locate Mode to retrieve a Spanned Record.

136(88) – You attempted an Addressed GET of a Spanned record in a Key-sequenced data set.

140(8C) – Inconsistent Spanned record.

144(90) – Invalid pointer (no associated base record) in an Alternate Index.

148(94) – Maximum number of Alternate Index pointers exceeded.

152(98) – Not enough buffers available.

156(9C) – Invalid control interval.

192(C0) – Invalid Relative Record number in an RRDS dataset.

196(C4) – Addressed access to a Relative Record (RRDS) dataset is not allowed.

200(C8) – Addressed Access or Generic Backward processing by Key thru a path is not allowed.

204(CC) – Attempting a PUT in backward mode.

252(FC) -Record mode processing is not allowed for a Linear data set.

136(88) – Not enough Virtual-Storage Space is available for Work Areas, Control Blocks, or Buffers.

144(90) – An uncorrectable I/O error occurred while VSAM was Reading or Writing a catalog record.

148(94) – No record for the data set to be opened was found in the available catalog(s) or an unidentified error occurred while VSAM was searching the catalog.

152(98) – Security Verification failed; the password specified in the Access-Method Control Block for a specified level of access does not match the password in the catalog for that level of access.

164(A4) – An uncorrectable I/O error occurred while VSAM was Reading the Volume Label.

168(A8) – The data set is not available for the type of processing you specify, or an attempt was made to open a Reusable data set with the Reset option while another user had the data set.

176(B0) – An error occurred while VSAM was attempting to fix a page of Virtual storage in Real storage.

180(B4) – A VSAM catalog specified in JCL either does not exist or is not open, and no record for the data set to be opened was found in any other catalog.

184(B8) – An uncorrectable I/O error occurred while VSAM completed an I/O request.

188(BC) – The data set indicated by the Access-Method Control Block is not of the type that may be specified by an Access-Method Control Block.

192(C0) – An unusable data set was opened for output.

232(E8) – Reset was specified for a nonreusable data set and the data set is not empty.

236(EC) – A permanent Staging error occurred in MSS (Acquire).

244(F4) – The Volume containing the Catalog Recovery area was not mounted and verified for output processing.


Author: Srini

Experienced software developer. Skills in Development, Coding, Testing and Debugging. Good Data analytic skills (Data Warehousing and BI). Also skills in Mainframe.