SAP ECC ABAP Runtime Errors (ST22 Dumps) and Error Log Transactions
This reference lists the ABAP runtime errors you see most in ST22 on SAP ECC 6.0, with the catchable exception class, usual cause and first fix, plus the transactions that show every other error log. It is for developers and Basis admins working a dump or a failed process.
| Section | Runtime error / T-code | Exception class / what it shows | Usual cause / where stored | First fix / when to use | Related parameter or note |
|---|---|---|---|---|---|
A: Runtime error | TIME_OUT | Not catchable | Dialog step ran longer than the dialog work process limit | Run the report in background (SM36) or fix the slow SELECT found in ST12 / SAT | rdisp/max_wprun_time (newer kernels: rdisp/scheduler/prio_high/max_runtime) |
A: Runtime error | TSV_TNEW_PAGE_ALLOC_FAILED | Not catchable | Internal table could not get more memory; usually a huge SELECT into a table | Restrict the selection, use PACKAGE SIZE or cursors, free tables no longer needed | ztta/roll_extension, abap/heap_area_dia, abap/heap_area_nondia, abap/heap_area_total |
A: Runtime error | SYSTEM_NO_ROLL | Not catchable | Roll area or extended memory exhausted for the user context | Check memory use of the program; review roll and extended memory sizing | ztta/roll_area, em/initial_size_MB |
A: Runtime error | MEMORY_NO_MORE_PAGING | Not catchable | ABAP paging area exhausted, often by large EXPORT TO MEMORY or extracts | Reduce data held in ABAP memory; review paging file size | rdisp/PG_MAXFS, rdisp/PG_SHM |
A: Runtime error | STORAGE_PARAMETERS_WRONG_SET | Not catchable | Memory profile parameters inconsistent, or a request beyond configured limits | Basis: review memory parameters in RZ10 against the kernel documentation | Memory management parameters (RZ11) |
A: Runtime error | DBIF_RSQL_SQL_ERROR | CX_SY_OPEN_SQL_DB | Database returned an error: tablespace full, deadlock, lock timeout, statement too long | Read the database error text in the dump and the DB alert log; check DB02 | Database-specific error code in the dump |
A: Runtime error | DBIF_RSQL_INVALID_RSQL | CX_SY_OPEN_SQL_DB | Invalid Open SQL request, often an IN range table too large | Split large range tables or use FOR ALL ENTRIES with a checked, non-empty table | rsdb/max_blocking_factor, rsdb/max_in_blocking_factor |
A: Runtime error | SAPSQL_ARRAY_INSERT_DUPREC | CX_SY_OPEN_SQL_DB | INSERT from internal table hit an existing primary key | Check the number range or the key logic; use ACCEPTING DUPLICATE KEYS only if duplicates are expected | Number range object (SNRO) when keys come from a number range |
A: Runtime error | CONVT_NO_NUMBER | CX_SY_CONVERSION_NO_NUMBER | Text that is not a number moved into a numeric field (I, P, F), often from a file or IDoc | Validate input before the MOVE, or catch the exception and report the record | - |
A: Runtime error | CONVT_OVERFLOW | CX_SY_CONVERSION_OVERFLOW | Value too large for the target field during conversion | Widen the target type or check value ranges | - |
A: Runtime error | BCD_OVERFLOW | CX_SY_ARITHMETIC_OVERFLOW | Packed number result exceeds the field length | Use a larger packed type for the intermediate result | - |
A: Runtime error | COMPUTE_BCD_OVERFLOW | CX_SY_ARITHMETIC_OVERFLOW | Overflow in a packed number calculation | Check the arithmetic and field sizes of the result | - |
A: Runtime error | COMPUTE_INT_ZERODIVIDE | CX_SY_ZERODIVIDE | Integer division by zero | Check the divisor before dividing | - |
A: Runtime error | MESSAGE_TYPE_X | Not catchable | Program deliberately aborted with a type X message | Read the message class and number in the dump; it points to the failed consistency check, often covered by an SAP Note | Search SAP Notes for the message ID and number |
A: Runtime error | RAISE_EXCEPTION | Classic function module exception not handled | Caller did not list the exception in EXCEPTIONS of CALL FUNCTION | Add EXCEPTIONS with OTHERS and check SY-SUBRC | - |
A: Runtime error | UNCAUGHT_EXCEPTION | Any class-based exception (named in the dump) | Class-based exception raised and not caught by TRY ... CATCH | Catch the specific class or a superclass such as CX_ROOT at the right level | - |
A: Runtime error | OBJECTS_OBJREF_NOT_ASSIGNED | CX_SY_REF_IS_INITIAL | Method called on an object reference that is initial | Check IS BOUND before use; find why CREATE OBJECT did not run | - |
A: Runtime error | GETWA_NOT_ASSIGNED | Not catchable | Field symbol used before ASSIGN or after a failed ASSIGN | Check IS ASSIGNED or SY-SUBRC after ASSIGN | - |
A: Runtime error | ITAB_DUPLICATE_KEY | See dump for statement | Insert into a sorted or hashed table with UNIQUE KEY found a duplicate | Check for the key before INSERT, or change the table key | - |
A: Runtime error | TABLE_INVALID_INDEX | Not catchable | Index access to an internal table with index 0 or negative, or out of range for INSERT | Check SY-TABIX and the index variable before INSERT or MODIFY with INDEX | - |
A: Runtime error | CALL_FUNCTION_NOT_FOUND | CX_SY_DYN_CALL_ILLEGAL_FUNC | Function module does not exist or is not active in this system | Check SE37 and TFDIR; often a missing transport | - |
A: Runtime error | CALL_FUNCTION_CONFLICT_TYPE | CX_SY_DYN_CALL_ILLEGAL_TYPE | Actual parameter type does not match the formal parameter | Type the actual parameter like the interface (use the data element from SE37) | - |
A: Runtime error | CALL_FUNCTION_PARM_MISSING | CX_SY_DYN_CALL_PARAM_MISSING | Mandatory parameter not passed | Pass all non-optional parameters shown in SE37 | - |
A: Runtime error | CALL_FUNCTION_REMOTE_ERROR | Not catchable as class; use SYSTEM_FAILURE | Error in the remote system during an RFC call | Add EXCEPTIONS system_failure and communication_failure with MESSAGE; read the dump on the target system | Check SM59 destination and the target system ST22 |
A: Runtime error | RFC_NO_AUTHORITY | Not catchable | RFC user lacks authorization object S_RFC for the function group | Add S_RFC for the function group to the RFC user role (check with SU53 or STAUTHTRACE) | auth/rfc_authority_check |
A: Runtime error | LOAD_PROGRAM_NOT_FOUND | CX_SY_PROGRAM_NOT_FOUND | Called program, transaction or include does not exist | Check the transport; check TSTC for the program name behind the transaction | - |
A: Runtime error | SYNTAX_ERROR | Not catchable | Program has a syntax error, often after a partial transport or upgrade | Check in SE38 or SE80; import the missing objects or adjust in SPAU | - |
A: Runtime error | DYNPRO_SEND_IN_BACKGROUND | Not catchable | Background job or RFC tried to display a screen | Remove the screen call in batch mode, check SY-BATCH or use a non-dialog BAPI | - |
B: Error log T-code | ST22 | ABAP runtime errors (dumps) | Table SNAP; old dumps removed by the reorganization job (program RSSNAPDL) | First stop for any short dump; keep a dump with the Keep function before it is deleted | - |
B: Error log T-code | SM21 | System log | System log files on the application servers | Work process restarts, database connection errors, kernel messages | - |
B: Error log T-code | SLG1 | Application log | Tables BALHDR and BALDAT; delete old logs with SLG2 | Errors from IDoc, BAPI, migration and custom programs that write to the log | - |
B: Error log T-code | SM13 | Update records | Update tables (VBHDR, VBMOD, VBDATA) | Document saved but not posted; terminated V1 or V2 updates | - |
B: Error log T-code | SM58 | Transactional RFC errors | tRFC tables (ARFCSSTATE, ARFCSDATA) | Stuck outbound tRFC calls, for example IDocs sent through tRFC | - |
B: Error log T-code | SMQ1 / SMQ2 | Outbound / inbound qRFC queues | qRFC tables (TRFCQOUT, TRFCQIN) | Blocked queues in qRFC scenarios | - |
B: Error log T-code | SM35 | Batch input sessions and logs | Session logs in TemSe | Batch input (BDC) sessions in error | - |
B: Error log T-code | SM37 | Background job overview and job logs | Job tables (TBTCO, TBTCP); job logs in TemSe | Cancelled jobs, long runtimes, the job log message that ended a job | - |
B: Error log T-code | WE02 / BD87 | IDoc display / status monitor | EDIDC, EDID4, EDIDS | IDocs in status 51, 56, 64 and similar; BD87 reprocesses | - |
B: Error log T-code | SU53 | Last failed authorization check of a user | Held in the user session buffer | User reports "no authorization"; run directly after the failure | - |
B: Error log T-code | ST01 / STAUTHTRACE | System trace / authorization trace | Trace files on the application server | Record all authorization checks of a user across a process | - |
B: Error log T-code | SM20 | Security audit log | Audit files on the application servers; configured in SM19 | Logons, failed logons, RFC calls and critical transactions | rsau/enable |
B: Error log T-code | SMGW | Gateway monitor, with gateway trace and log under Goto | Gateway trace file dev_rd and gateway log file | Rejected RFC registrations, reginfo and secinfo errors | gw/reg_info, gw/sec_info |
B: Error log T-code | ST11 | Developer traces (dev_w*, dev_disp and others) | Work directory of the instance | Kernel-level detail behind a dump or work process restart | rdisp/TRACE |
B: Error log T-code | SMICM | ICM monitor and trace | ICM trace file dev_icm | HTTP, SOAP and OData connection errors | - |
Exception classes apply where the runtime error is catchable in ECC 6.0 with NetWeaver 7.0x to 7.50. Profile parameter names vary by kernel release; check RZ11 documentation for your kernel before changing a value.
Get your recurring dumps triaged
Send an export of a week of ST22 headers and we will group them by cause and list which fixes are code, which are configuration and which need an SAP Note.
Optional. The tool and every export work without this. No spam.
How to read a dump in ST22
Open ST22, select today or yesterday, and double-click the dump. Read in this order: the runtime error name and exception class at the top; "What happened" and "Error analysis" for the plain cause; "Information on where terminated" for program, include and line; then the active calls list (call stack) and the chosen variables. For memory dumps, the memory section shows how much extended memory and heap the user had. Always note the transaction, user and application server before you go further. Use the Keep function on important dumps so the reorganization job does not delete them.
- Runtime error name: the row to look up in this table
- Exception class: tells you if TRY ... CATCH could handle it
- Source code extract: the failing line marked with >>>>>
- Search SAP Notes with the runtime error plus program name
Worked example: TSV_TNEW_PAGE_ALLOC_FAILED in a custom report
A Z report selects all MSEG rows for a plant and year into an internal table and dumps after a few minutes with TSV_TNEW_PAGE_ALLOC_FAILED. The memory section shows the user reached the heap limit for dialog work processes. Raising abap/heap_area_dia only moves the problem. The fix is in the code: add the material and date range from the selection screen to the WHERE clause, select only the needed columns, and process in blocks with OPEN CURSOR and FETCH NEXT CURSOR ... PACKAGE SIZE 10000. Run it as a background job so heap limits for non-dialog processes apply and the dialog TIME_OUT does not.
Catchable or not
Errors with an exception class (CX_SY_ZERODIVIDE, CX_SY_CONVERSION_NO_NUMBER, CX_SY_OPEN_SQL_DB and others) can be caught with TRY ... CATCH, which lets you log the bad record and continue. Resource errors such as TIME_OUT, TSV_TNEW_PAGE_ALLOC_FAILED and SYSTEM_NO_ROLL cannot be caught: the only fix is to use less time or memory. MESSAGE_TYPE_X is deliberate, so do not try to suppress it; the message ID in the dump leads to the right SAP Note.
Which log to open when there is no dump
Not every failure leaves an ST22 entry. A document saved but missing in the database points to SM13. An interface stuck between systems points to SM58, SMQ1/SMQ2 or WE02. A job that ended without a dump points to SM37 and its job log. A user without access points to SU53 right after the failure, then STAUTHTRACE. Connection and work process problems show in SM21 and ST11.
Frequently Asked Questions
What is the transaction code for ABAP dumps in SAP?
ST22 shows ABAP runtime errors (short dumps), stored in table SNAP. Select by date, user or runtime error name and open a dump to see the cause, the source line and the call stack. Use the Keep function to protect a dump from the reorganization job.
Which transaction shows authorization errors in SAP?
SU53 shows the last failed authorization check for a user and must be run straight after the failure, in the same session or for that user. For a full picture across a process, use STAUTHTRACE or the system trace in ST01, which records every authorization check.
Which transaction shows the SAP gateway error log?
SMGW is the gateway monitor. Under the Goto menu you can display the gateway trace and switch on gateway logging. Rejected registered programs and secinfo or reginfo errors show there, and the trace file dev_rd sits in the instance work directory, also readable through ST11.
How do I fix TIME_OUT in SAP?
TIME_OUT means a dialog step exceeded the work process runtime limit set by rdisp/max_wprun_time or its newer kernel equivalent. Raising the limit is a last resort. Run the program in background, or find the slow statement with ST12 or SAT and fix the selection or index.
If your support team wants to ask in plain English why yesterday's dumps happened and which ones repeat, we can add a private AI layer over ST22 and your logs on your own SAP ECC servers.
Related Tools
SAP ECC Data Dictionary and Repository Tables Reference (DD02L, DD03L, T100, E070, TSTC)
Which SAP table holds table names, field lists, domain values, messages, transports and transaction codes, with key fields and join paths.
SAPABAP Background Job Runtime and Batch Window Calculator
Estimate batch job duration from record volume, per-record time, commit frequency and parallel processing, and test it against your batch window.
SAPSAP IDoc Status Codes Reference
Look up any IDoc status code, see whether it is inbound or outbound, whether it is an error, and which transaction to use to fix it.
SAPSAP ECC 6.0 Enhancement Packages and Maintenance Dates Reference (EHP1 to EHP8, 2027, 2030, 2033)
Every SAP ERP 6.0 enhancement package with its NetWeaver basis, SAP_APPL release and the maintenance dates that apply: 2025, 2027, 2030 and the 2033 transition option.
More Developer Tools tools
See all- SAP ECC Enhancement Transactions and Exit Tables Reference (SMOD, CMOD, SE18, MODSAP, SXC_EXIT)
- SAP ECC Background Job History ABAP Query Generator (TBTCO + TBTCP)
- SAP ECC Background Job Creation ABAP Generator (JOB_OPEN, SUBMIT, JOB_CLOSE)
- SAP ECC IDoc Segment Data Reader ABAP Generator (EDIDC, EDID4, EDIDS)
- SAP ECC Custom Inbound IDoc Function Module Skeleton Generator
- SAP ECC BAPI_SALESORDER_CHANGE ABAP Generator
- SAP ECC BAPI_PO_CHANGE ABAP Generator
- SAP ECC BAPI_MATERIAL_SAVEDATA Material Creation ABAP Generator
- SAP ECC BAPI_ACC_DOCUMENT_POST G/L and Vendor Posting ABAP Generator
Keep exploring
Free tools
- SAP ECC Background Job Failure Troubleshooting Checklist (SM37, ST22, SM21)Work through a failed, stuck or never-started SAP ECC background job in order: logs, scheduling errors, runtime failures, debugging and safe cancellation.
- SAP ECC BAPI_PO_CHANGE ABAP GeneratorGenerate a working ABAP program that changes an SAP purchase order item with BAPI_PO_CHANGE, with POITEM/POITEMX, schedule line date conversion, test run and commit handling.
- SAP ECC BAPI_SALESORDER_CHANGE ABAP GeneratorGenerate a working ABAP program that updates an SAP sales order with BAPI_SALESORDER_CHANGE, with the correct X structures, schedule line handling, error check and commit or rollback.
ERP fixes and how-tos
- SAP Short Dump TIME_OUT: Maximum Runtime ExceededSAP TIME_OUT dumps mean a dialog process ran past rdisp/max_wprun_time. Find the real bottleneck in ST22, SM50 and ST05 instead of just raising the limit.
- How to add AI to SAP ECC 6.0 on-prem without moving data to a cloudReference architecture for a private on-prem AI assistant on SAP ECC 6.0: RFC and BAPI reads, SLT replica, retrieval index, local LLM, permission mirroring.
- SAP CO11N Confirmation Errors and How to Fix ThemCommon SAP CO11N confirmation errors - deviation too large, no goods movements possible, status not allowed - explained with the config and order status checks to fix each.
Integrations
- How to automate email into SAP ECC 6.0Turn inbound emails into SAP ECC 6.0 transactions: customer POs into sales orders, supplier confirmations, RFQs and invoices, with review and BAPI posting.
- How to use ChatGPT with SAP ECC 6.0Using ChatGPT with SAP ECC 6.0: custom GPT actions, exports versus live access, an OData or MCP bridge, enterprise data controls, and when a private model is safer.