MainframeKit

S806

Module not foundSYSTEM ABEND

z/OS could not find the program to run or load in any library the step searched.

MOST LIKELY

The module name is misspelled in PGM= or in a dynamic CALL variable.

FIRST CHECK

Read the job log to find the name of the missing module; it may be a called routine, not your main program.

TRY IT ▸

MainframeKit assistant

What it means

A program was requested by PGM= on the EXEC statement, by a dynamic CALL, or by a LINK, LOAD, XCTL or ATTACH, and the system could not find it.

For a job step, the system searches the job pack area, then STEPLIB or JOBLIB, then the link pack area (LPA) and the system link list. If none of them has a member of that name, the request fails with 806.

Typical causes

  • The module name is misspelled in PGM= or in a dynamic CALL variable.
  • The library holding the module is missing from STEPLIB or JOBLIB.
  • The link-edit failed, so the module was never created.
  • A product or runtime library a called routine lives in is not in the concatenation.
  • The module was promoted to a different environment's library.

How to fix it

  1. Read the job log to find the name of the missing module; it may be a called routine, not your main program.
  2. Check the spelling in the JCL or the CALL variable.
  3. List the libraries in STEPLIB or JOBLIB from the expanded JCL and look for the member.
  4. Check the binder output and the promotion record for that module.
  5. Fix the name or library and rerun; 806 usually happens before any data is processed.

Example

Illustrative only; names and values are invented.

IEF450I PAYJOB01 STEP020 - ABEND=S806 U0000 REASON=nnnnnnnn