Troubleshooting Guide
Mainframe Troubleshooting Guide
500 practical fixes: abend codes, SQLCODEs, JCL errors, VSAM status, CICS, MQ, security & more.
500Articles
12Categories
100%Free
COBOL (53)
VSAM (56)
JCL (52)
Db2 (50)
CICS (51)
z/OS (38)
Security (50)
IMS (20)
MQ (29)
Networking (50)
DevOps (49)
Batch (2)
No articles match your search. Try an error code like S0C7 or SQLCODE -904.
COBOL
53 articles
S0C7 data exception during numeric calculation
S0C4 protection exception
S0C1 operation exception
S0C9 divide exception
Invalid numeric data in a PIC field
Packed-decimal sign nibble problem
COMP-3 field length mismatch
Data truncation after MOVE
Incorrect results after REDEFINES
OCCURS table subscript out of range
Reference modification length error
Uninitialized working-storage field
Input record layout mismatch
Output file contains shifted fields
Incorrect decimal arithmetic
Rounding differences in financial calculations
Numeric-edited field conversion problem
PIC clause causes unexpected storage length
Binary field overflow
COMP and COMP-5 value mismatch
Incorrect sign handling
Date field contains invalid values
Program loops without reaching termination
PERFORM THRU range skips paragraph
Nested PERFORM changes control flow
CALL parameter mismatch
LINKAGE SECTION parameter layout mismatch
COPYBOOK version mismatch
Duplicate paragraph or data name
Condition-name 88 level not behaving as expected
INITIALIZE clears more data than expected
STRING statement pointer overflow
UNSTRING delimiter handling error
INSPECT count or replace gives wrong result
READ statement fails to detect end of file
OPEN EXTEND behaves unexpectedly
CLOSE reports an I/O error
File organization differs from program definition
Compiler option changes runtime behavior
LE condition handler masks the original issue
Program works in test but fails in production
Unexpected low-values or spaces in a field
Incorrect record count after processing
Batch program produces duplicate output
Job ends with S0C7
Job ends with S0C4
S0C1 operation exception in production
S0C4 protection exception diagnosis
S0C7 data exception diagnosis
S0C8 fixed-point overflow
S0C9 fixed-point divide exception
S0CA decimal overflow
S0CB decimal divide exception
VSAM
56 articles
File status 35 on OPEN INPUT
File status 10 unexpected end of file
File status 23 record not found
File status 39 file attribute mismatch
File status 92 logic error
File status 30 permanent I/O error
VSAM file status 23 record not found
VSAM file status 35 dataset missing
VSAM file status 39 attribute conflict
VSAM file status 10 end of file
VSAM file status 22 duplicate key
VSAM file status 21 sequence error
VSAM file status 92 logic error
VSAM file status 90 environment error
VSAM OPEN fails despite catalog entry
IDCAMS DEFINE CLUSTER fails
IDCAMS REPRO returns error
IDCAMS LISTCAT output is confusing
KSDS key length mismatch
KSDS alternate index path unavailable
ESDS relative record assumptions fail
RRDS record number is invalid
VSAM dataset reaches CI or CA split pressure
VSAM dataset performance degrades after growth
VSAM file locked by another job
VSAM cluster cannot be deleted
PATH entry points to wrong AIX
AIX and base cluster become inconsistent
REPRO copies fewer records than expected
REPRO rejects records with duplicate keys
File status is not checked after OPEN
COBOL FD layout differs from VSAM attributes
Record length varies unexpectedly
VSAM dataset defined with wrong SHAREOPTIONS
Catalog alias resolves unexpected dataset
Dataset is uncataloged but still allocated
Alternate index upgrade fails
IDCAMS VERIFY reports index issue
Backup restore leaves file unavailable
File is empty after successful batch run
Record key is not in expected position
START command returns unexpected status
READ NEXT returns records in unexpected order
WRITE fails on an existing key
REWRITE fails after READ
DELETE fails for a found record
VSAM access path causes slow random reads
Dataset volume migration affects access
File status 97 after OPEN
RLS access behaves differently from non-RLS
VSAM cluster is defined with incorrect FREESPACE
Data component and index component sizing issue
Input file has EBCDIC character mismatch
Record layout changed without coordinated deployment
Batch and online jobs contend for the same VSAM file
VSAM status code lacks enough detail for diagnosis
JCL
52 articles
JCL syntax error before job execution
JCL ERROR due to missing comma or parameter
JOB card parameter rejected
EXEC statement references missing program
DD statement references a missing dataset
DISP parameter causes dataset allocation failure
Dataset already exists during allocation
Temporary dataset unavailable to later step
GDG generation not found
GDG base limit or roll-off issue
PROC symbolic parameter not substituted
Procedure override does not take effect
COND parameter skips an unexpected step
IF/THEN/ELSE logic selects wrong branch
Return code causes downstream step to be skipped
MAXCC is unexpectedly high
Job ends with S322 time limit exceeded
Job ends with SB37 space abend
Job ends with SD37 space abend
Job ends with SE37 extent limit reached
System reports dataset in use
DISP=MOD appends when replacement was expected
DISP=OLD causes enqueue wait
Cataloged dataset cannot be located
Unit or volume parameter causes allocation error
DUMMY DD changes program behavior
SYSIN control cards are not read as expected
In-stream data delimiter is missing
SORT step produces zero records
DFSORT INCLUDE condition filters all records
DFSORT OUTREC positions are incorrect
SORT field format does not match input data
Duplicate records remain after sort
ICETOOL count differs from expected
RESTART skips required setup step
Checkpoint restart duplicates records
Job runs longer after input volume increases
Job abends only with month-end data
Job output is missing from expected spool class
JES holds a job unexpectedly
Initiator shortage delays batch start
Scheduler dependency prevents job submission
Return code differs between environments
Input dataset DCB attributes mismatch
RECFM or LRECL mismatch
Job uses stale load module
Load library concatenation resolves wrong module
Restart after partial output risks duplicate posting
S322 time limit exceeded
SB37 insufficient space condition
SD37 secondary allocation unavailable
SE37 extent limit reached
Db2
50 articles
SQLCODE -911 deadlock or timeout
SQLCODE -913 resource unavailable
SQLCODE -805 package not found
SQLCODE -818 consistency token mismatch
SQLCODE -904 unavailable resource
SQLCODE -911 versus -913 diagnosis
SQLCODE +100 no row found
SQLCODE -305 null indicator missing
SQLCODE -302 input value too large
SQLCODE -803 duplicate key
SQLCODE -530 foreign key violation
SQLCODE -531 parent delete restricted
SQLCODE -532 parent row delete restriction
SQLCODE -407 null inserted into non-null column
SQLCODE -180 invalid date or time
SQLCODE -181 invalid date or time value
SQLCODE -220 column definition mismatch
SQLCODE -204 object not defined
SQLCODE -206 column not found
SQLCODE -440 routine not found
SQLCODE -551 authorization failure
SQLCODE -922 connection authorization failure
SQLCODE -913 during batch update
Cursor returns duplicate rows
Cursor skips expected rows
Cursor remains open across commit
COMMIT frequency causes lock contention
ROLLBACK leaves application state inconsistent
Host variable length mismatch
NULL handling fails in embedded SQL
Indicator variable has wrong value
Static SQL package bind failure
REBIND changes access path performance
RUNSTATS produces unexpected plan changes
Query regresses after data growth
Table space in restrictive state
REORG job fails or is delayed
LOAD utility rejects input rows
UNLOAD output count does not match table count
Index is not used by a query
Query performs table space scan unexpectedly
Deadlocks increase during peak processing
Lock escalation slows batch jobs
Db2 connection fails after deployment
Plan or package points to wrong collection
SQL statement works in SPUFI but not program
Decimal conversion error in SQL host variable
Timestamp comparison returns unexpected rows
Commit scope causes partial business updates
Long-running unit of work holds locks
CICS
51 articles
ASRA transaction abend
AEI0 program not found
AEY9 resource unavailable
AICA runaway task condition
MAPFAIL after RECEIVE MAP
MAPONLY or DATAONLY map display issue
COMMAREA length mismatch
Channel/container data missing
LINK program receives incorrect data
XCTL does not return to caller
RETURN TRANSID loop starts unexpectedly
RESP and RESP2 indicate command failure
File control NOTOPEN condition
NOTFND response for existing record
DUPREC response on WRITE
LENGERR on file or program command
INVREQ response from CICS command
PGMIDERR after deployment
Transaction definition points to wrong program
Program is not enabled
Newcopy does not load expected module
CICS program runs old version
Transaction times out under load
Task waits on a resource
Temporary storage queue item missing
Transient data queue write fails
TS queue grows unexpectedly
TD queue trigger does not fire
Terminal receives blank map fields
BMS symbolic map layout mismatch
PF key handling behaves incorrectly
EIBTRNID or EIBTRMID unexpected
Abend occurs only for one transaction ID
Transaction dump is unavailable
CSMT log shows repeated abends
CICS region appears hung
CICS response time suddenly increases
Storage violation reported
Temporary storage shortage
File is disabled after error
MQ call returns unexpected reason code
CICS Db2 thread acquisition fails
Syncpoint backs out updates unexpectedly
Unit of work remains open too long
Security check rejects transaction
Resource definition differs across regions
Program works in test region but fails in production
Transaction abends after copybook change
Pseudo-conversation loses state
Task limit reached during peak traffic
MQ call causes ASRA after reason code ignored
z/OS
38 articles
S0C2 privileged operation exception
S0C5 addressing exception
S0C6 specification exception
Uxxxx user abend diagnosis
System completion code has a reason code
Job log does not show the first failure
Multiple abends occur in one job
SYSOUT is missing or incomplete
SDSF cannot locate expected job
Job is in held status unexpectedly
Initiator shortage delays batch processing
Dataset enqueue causes job wait
Catalog search returns unexpected result
IEC message indicates allocation failure
IGD message indicates SMS allocation issue
SMS class selection differs across environments
Volume is full or unavailable
System logger messages appear during outage
Address space uses unexpected CPU
High CPU after application deployment
Paging activity increases sharply
Storage shortage affects batch processing
WLM service class impacts response time
Started task fails during initialization
Started task remains in restart loop
Console message repeats continuously
IPL-related dependency causes service failure
SMF records are missing from expected interval
SYSLOG timestamps confuse incident timeline
Dump is not produced after abend
IPCS dump analysis starts with incomplete evidence
LOGREC points to recurring hardware or software event
Program fails only on one LPAR
Cross-system resource contention slows processing
Job succeeds on one system but fails on another
Load library search order selects wrong module
Authorization error prevents dataset access
Backup or recovery step reports success but data is stale
Security
50 articles
RACF dataset access denied
User cannot log on to TSO
User ID is revoked or suspended
Password or passphrase change fails
Group connection is missing
Dataset profile does not match resource name
Generic profile grants unexpected access
Access works in test but fails in production
Started task cannot access required dataset
Surrogate job submission is rejected
OPERATIONS attribute is misunderstood
SPECIAL authority is not effective as expected
RACF command returns insufficient authority
Program access to protected resource fails
CICS transaction security check fails
Db2 authorization failure after deployment
USS permission denied for file
Z/OS UNIX user mapping issue
SSH login to USS fails
Certificate expired or not trusted
TLS handshake fails after certificate renewal
Key ring lacks required certificate
Digital certificate label mismatch
AT-TLS policy does not match connection
Password phrase policy blocks sign-on
Group owner mismatch prevents profile administration
RACF audit records are missing
Unexpected access appears in SMF audit data
Resource profile is defined in wrong class
Class is inactive or not RACLISTed
RACLIST refresh does not show expected change
User has conflicting group permissions
Access check differs between batch and TSO
Dataset profile permits read but blocks update
CICS region user lacks resource authority
MQ queue access is denied
FTP transfer fails due to security policy
Certificate chain is incomplete
Service account lacks least-privilege access
Expired credential breaks scheduled job
Emergency access change is not reflected
Security change causes application outage
USS umask produces incorrect file permissions
File owner differs after deployment
RACF profile cleanup risks removing required access
Auditor requests evidence of access review
User cannot submit a job under another ID
Authorization failure is misdiagnosed as missing dataset
Certificate works on one LPAR but not another
Security configuration drift across environments
IMS
20 articles
IMS transaction returns unexpected status
IMS program receives no input message
IMS database PCB status indicates failure
IMS call returns GE status
IMS call returns GB status
IMS database segment not found
IMS database update is backed out
IMS PSB or PCB definition mismatch
IMS program works in test but fails in production
IMS region cannot access database
IMS message queue backlog grows
IMS transaction response time increases
IMS dependent region fails to initialize
IMS batch job cannot open database
IMS restart recovery takes longer than expected
IMS log dataset space problem
IMS checkpoint restart reprocesses work
IMS authorization failure
IMS transaction abend lacks clear root cause
IMS database reorganization affects availability
MQ
29 articles
MQ reason code 2035 not authorized
MQ reason code 2059 queue manager unavailable
MQ reason code 2085 unknown object name
MQ reason code 2087 remote object unavailable
MQ reason code 2009 connection broken
MQ queue depth reaches limit
MQ message remains on queue
MQ backout queue fills up
MQ poison message repeatedly reprocessed
MQ trigger monitor does not start application
MQ channel enters retry state
MQ channel authentication fails
MQ TLS certificate error
MQ message gets truncated by application buffer
MQ message format mismatch
MQMD fields are not populated as expected
MQPUT fails during peak traffic
MQGET waits longer than expected
Syncpoint rollback returns message to queue
Persistent message recovery behaves unexpectedly
Dead-letter queue receives unexpected messages
Remote queue definition points to wrong target
Clustered queue routing differs from expectation
MQ listener fails after restart
Queue manager startup reports log issue
MQ connection from CICS fails
Application does not handle MQ completion code
Message expiry removes expected work
Duplicate message processing after restart
Networking
50 articles
TCP/IP connection to mainframe is refused
Connection times out from distributed application
DNS name resolves to wrong address
Port is not listening on z/OS
Firewall blocks application connection
TLS handshake fails between application and z/OS
Certificate hostname does not match
Certificate trust chain is incomplete
Expired certificate breaks API call
Z/OS Connect API returns HTTP 401
Z/OS Connect API returns HTTP 403
Z/OS Connect API returns HTTP 404
Z/OS Connect API returns HTTP 500
REST request payload fails validation
JSON field mapping loses data
API response schema changes unexpectedly
API call latency increases after deployment
Distributed caller disconnects mid-transaction
Character encoding corrupts returned text
EBCDIC-to-UTF-8 conversion changes characters
Fixed-width record sent as delimited data
Network transfer truncates large response
FTP transfer uses wrong mode
SFTP authentication fails
File transfer completes with wrong record count
API gateway timeout while backend continues
Connection pool exhaustion affects mainframe calls
Load balancer routes to unhealthy endpoint
Service endpoint differs between environments
HTTP retry causes duplicate business transaction
Idempotency key is not honored
OAuth token expires during long operation
SOAP service returns fault after schema update
MQ bridge delays message delivery
DNS cache retains old endpoint
IPv4 and IPv6 behavior differs
Network route changes cause intermittent failures
Firewall rule change breaks batch transfer
Remote client sends unexpected code page
Mainframe API returns valid HTTP status but business error
Large payload exceeds configured limit
Request header missing required value
API works from one network segment only
Distributed trace cannot correlate mainframe request
Connection reset occurs under load
API authentication succeeds but authorization fails
Maintenance restart leaves stale connections
Retry policy amplifies an outage
Service account credential rotation breaks integration
Batch file transfer arrives after dependent job starts
DevOps
49 articles
Zowe CLI login fails
Zowe CLI profile points to wrong endpoint
Zowe Explorer cannot connect to z/OS
Certificate validation blocks Zowe connection
Z/OSMF REST API returns unauthorized
Z/OSMF endpoint is unavailable
Zowe command returns a confusing HTTP error
USS command fails due to permissions
Git checkout changes source record formatting
COBOL source encoding breaks build
Copybook dependency missing in CI pipeline
Build uses wrong compiler options
Pipeline deploys stale load module
Promotion package contains wrong program version
Link-edit resolves wrong module
Binder reports unresolved external reference
Compile succeeds but link-edit fails
Test environment differs from production runtime
Automated test data is not repeatable
CI job fails due to unavailable agent
Deployment leaves source and load module out of sync
Rollback restores code but not configuration
Configuration drift breaks application
Secret or credential rotation breaks pipeline
Static analysis flags legacy COBOL patterns
Automated test misses packed-decimal edge case
API contract changes break consumer
Java-to-COBOL call has parameter mismatch
Python USS script fails under batch environment
Shell script uses incorrect environment variable
Scheduler environment differs from interactive shell
Containerized service cannot reach mainframe endpoint
Cloud integration retries create duplicate transactions
Observability logs omit correlation ID
Deployment succeeds but transaction uses old program
Blue-green cutover sends traffic to wrong region
Migration changes sort order or collating sequence
Data conversion loses leading zeros
Test compares EBCDIC and ASCII incorrectly
API modernization exposes different error behavior
Performance regresses after runtime upgrade
Dependency version mismatch breaks build
Release approval blocks emergency fix
Pipeline has no post-deployment verification
Automated restart repeats a failed workload
Monitoring alert lacks actionable context
Change record misses dependency mapping
Parallel rollout causes incompatible copybook versions
Legacy batch job has undocumented upstream dependency
