# S437: End-of-volume error, bad DCB or DEB

Source: https://wndsoftware.com/mainframe-errors/s437

### S437: End-of-volume error, bad DCB or DEB

An S437 abend means end-of-volume processing failed because the control blocks it was given weren't valid. 437-08 means the DCB pointer was wrong when the program issued FEOV, and 437-0C means the data set's DEB wasn't in the DEB table. Message IEC025I gives the return code.


#### Other names for this code

Also written as `437`, `S437-08`, `S437-0C`, `abend 437`, `system abend 437`, `437-0C`, `IEC025I 437`.


### What it means

FEOV (force end of volume) is an assembler macro. It tells the system to stop using the current volume of a sequential data set and move to the next one, as if the end of the volume had been reached. The system then runs its normal end-of-volume (EOV) routine. To do that it needs a valid DCB for an open data set, and the data extent block (DEB) that OPEN built for that DCB.

End-of-volume processing also runs without FEOV, whenever a GET, PUT, READ or WRITE reaches the end of a volume, and it needs the same control blocks then. If either check fails, the system issues message IEC025I and ends the step with system completion code 437.

- `437-08` means the DCB pointer wasn't valid when FEOV was issued.
- `437-0C` means the DEB wasn't in the DEB table. IBM doesn't tie this one to FEOV, so it can come from any end-of-volume. The system keeps a table of the DEBs that belong to open data sets. A DEB that isn't in it doesn't belong to an open data set the system knows about.

Both point to a program problem rather than a problem with the data or the volume. IBM treats S437 as a probable user error. You're most likely to meet it in assembler code, or in a product that drives its own tape or volume switching.


### Common causes

- The program passed the wrong address on FEOV, such as the address of a work area, a copy of the DCB, or a register that no longer held the DCB address (437-08).
- The DCB's pointer to its DEB no longer points to a DEB the system knows, for example because the DCB was overwritten or reused after another OPEN and CLOSE (437-0C).
- A storage overlay damaged the DCB before FEOV or the next read or write reached end of volume.
- A vendor product issued FEOV under conditions it didn't expect, and maintenance for it fixes the problem.


### How to find the problem

- Find IEC025I in the job log. It has the form `IEC025I 437-rc,mod,jobname,stepname,ddname,dev,volser,dsname`. Note the return code and the DD name.
- In the dump, find the address the program passed to FEOV and check that it points to the DCB for that DD, and that the DCB is still open.
- Read through the program for paths that CLOSE the DCB and can still reach FEOV, or that reuse the register holding the DCB address.
- If a product issued the FEOV, search its support site for the abend and keep the dump for the vendor.


### How to fix it

- Pass the address of the real, open DCB to FEOV.
- Make sure FEOV, and any read or write, can only be reached while the data set is open.
- Find and fix any storage overlay that changes the DCB.
- If the abend comes from a product, apply its maintenance or open a problem with the vendor.


### What it looks like


```text
IEC025I 437-0C,IGC0003A,PAYRUN01,STEP060,TAPEOUT,0B41,PR4417,PROD.PAYROLL.ARCHIVE
IEA995I SYMPTOM DUMP OUTPUT
  SYSTEM COMPLETION CODE=437  REASON CODE=0000000C
IEF450I PAYRUN01 STEP060 - ABEND=S437 U0000 REASON=0000000C
```


### IBM documentation

[IBM z/OS: 437](https://www.ibm.com/docs/en/zos/3.1.0?topic=codes-437). Use the documentation for your installed release.

[Report a correction to WND Software](https://wndsoftware.com/contact#message).

Technical reviewer: [Albert Joseph](https://wndsoftware.com/authors/albert-joseph), WND Software.

Last reviewed 2026-10-18 by the WND Software team. Written in our own words. For the full reference, check IBM’s z/OS documentation for your release.


### Related codes

[S837 End-of-volume error, often too few volumes Read →](https://wndsoftware.com/mainframe-errors/s837)
[S737 End-of-volume or concatenation error Read →](https://wndsoftware.com/mainframe-errors/s737)
[S0C4 Protection exception Read →](https://wndsoftware.com/mainframe-errors/s0c4)
[S001 I/O error Read →](https://wndsoftware.com/mainframe-errors/s001)

### Questions


#### What is FEOV?

FEOV is the force end-of-volume macro. A program issues it to stop using the current volume and continue on the next one without closing the data set.


#### Can bad data cause S437?

Not usually. It's raised when the control blocks for the data set aren't valid, which points to the program or a storage overlay rather than the contents of the file.

[z/OS system abends](https://wndsoftware.com/mainframe-errors/zos-abends) · [S413](https://wndsoftware.com/mainframe-errors/s413) · [S522](https://wndsoftware.com/mainframe-errors/s522)

[← All error codes](https://wndsoftware.com/mainframe-errors/)
