CONVT_OVERFLOW — CONVT_OVERFLOW runtime error diagnosis
CONVT_OVERFLOW is a runtime error raised when ABAP tries to convert or move a value into a field that is too short to hold it, most often a character string moved into a fixed-length field, or a number with more digits than the target numeric type allows. It is almost always a field-length mismatch between source data and target definition, not a memory or database fault.
This page covers the CONVT_OVERFLOW short dump: what the underlying conversion exception actually means, the field-length mismatches that produce it in practice, how to read the ST22 dump to find the exact statement and value at fault, and how to fix it without silently truncating data. It also covers the common reflex fix that hides the problem instead of solving it.
Published 16 Sept 2026· 1,324 words
What the dump means
CONVT_OVERFLOW fires when the ABAP runtime attempts a type conversion or an assignment and the target field cannot physically hold the result. This covers two distinct situations that both surface as the same dump: a character or string value longer than the receiving field's length, and a numeric value with more significant digits than the receiving numeric type supports. The exception behind it is the conversion overflow exception raised by the kernel's conversion routines during a MOVE, WRITE TO, CONCATENATE INTO, or an implicit assignment such as passing an actual parameter to a formal parameter of a shorter type. It is a hard runtime error, not a warning, so the statement terminates the program unless it sits inside a TRY block that explicitly catches the conversion exception class. The dump itself never explains why the source value got that long; that has to be reconstructed from the variable content shown in ST22.
Root causes that actually produce it
- Character field too short for the source string: a MOVE, WRITE TO, or CONCATENATE INTO statement targets a fixed C-type field that is shorter than the actual runtime content of the source variable. This is the single most common cause and spikes heavily around field-length extension projects, for example material number moving from 18 to 40 characters, or document number and business partner number extensions, where old Z code still declares local fields at the old length.
- Numeric field too small for the value: assignment to an N-type counter, a packed DEC/P field, or an INT field where the actual number of digits exceeds what the target type stores. Typical trigger is a counter or running total that grows past a hardcoded length during peak volume or a batch run that was never sized for current data volumes.
- Custom code not updated after a data element or domain length change: a domain length was extended in a later release or by an enhancement, but a Z program still holds a local structure with the old, shorter length copied by value rather than referencing the dictionary type directly.
- String concatenation building beyond the target buffer: a loop builds up a message text, a key, or a file path by repeated CONCATENATE into a fixed-length field without checking cumulative length as iterations increase.
- Interface or RFC mapping mismatch: a BAPI or RFC-enabled function module returns or expects a field of one length, and the calling program's local structure or internal table declares a shorter one, so the automatic parameter conversion overflows on transfer.
- Miscalculated or corrupted intermediate value in standard SAP code: rare, but a wrong exchange rate, a bad unit conversion factor, or a division error upstream produces a number so large that a downstream standard conversion routine overflows; here the code is not the fault, the input data is.
What to inspect in ST22
- Runtime error name and short text at the top of ST22, confirming CONVT_OVERFLOW and giving the exception class raised.
- ABAP program, include and line number under 'Information on where terminated', which points to the exact MOVE, WRITE TO, CONCATENATE, or parameter-passing statement that failed.
- Source code extract, to see whether the statement is standard SAP code or a Z or Y custom program, and whether it is inside a loop.
- Variables section (chosen variables at time of the error), which lists the source field's actual content and length alongside the target field's technical type and length; this is where the mismatch becomes visible.
- Call stack, to identify whether the failing statement was reached directly or through a function module or method call chain, and whether it is a standard FM being fed bad data by a caller.
- Follow-on checks: SE11 or SE80 to compare the dictionary length of the target field's data element against the source field's current length; SE37 or SE24 if the failure sits inside a function module or class method to see the formal parameter definition; SE16N on the relevant master data table if the suspect value is a business key, to confirm its actual stored length.
Resolution path
If the target is a Z program's local field declared with a hardcoded length shorter than the source, correct the local declaration to reference the dictionary data element directly, or widen it to match; this is a code change and needs a transport through the normal change request process. If the cause is a domain or data element length extension that custom code never picked up, the fix is the same but should be checked across all callers of that structure, not just the one that dumped, since the same shortened copy is often reused elsewhere. If the numeric field is genuinely undersized for current business volume, for example a counter that has run out of digits, that is a design decision requiring functional and technical sign-off before changing the type, because it can affect number ranges, interfaces and archived data. If the root cause is bad input data feeding a standard SAP conversion routine, correct the master data or the upstream calculation and leave the standard code untouched; do not modify SAP standard objects to accommodate bad data. Interface and RFC mismatches require coordinated changes to both sides of the interface, not just the receiving program.
The fix people try first (and why it fails)
The reflex is to wrap the failing statement in a TRY block catching the conversion overflow exception class and doing nothing more than logging it or ignoring it. This stops the dump but does not stop the truncation: the value still does not fit, so it gets cut off or the record gets skipped, and the program continues with silently wrong or missing data. The business only discovers the damage later, often in a reconciliation report or a customer complaint, by which point the original failing input is no longer easy to trace back.
Prevention
Declare local structures and work areas by referencing dictionary data elements or the original table type instead of hardcoding lengths, so a future extension of the source field propagates automatically. Run a static code check across custom programs after any field-length extension project, such as an S/4HANA conversion, specifically searching for MOVE, CONCATENATE and WRITE TO statements against fixed-length local fields. Where a TRY/CATCH around a conversion is genuinely needed, log the actual oversized value and raise a functional alert rather than swallowing the exception silently.
Whose problem this is
ABAP development owns this in the large majority of cases, since the fix is almost always a code or data element correction. Functional involvement is needed only to confirm the correct target length or number range design when a field is genuinely too small for the business volume. The handover note should state the program, include, line number, the source field's actual length and content at failure, the target field's declared length, and the master data record or transaction that triggered it.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-abap-dumps/convt-overflowERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.