ABAP short dumpObjectCALL_FUNCTION_CONFLICT_LENGModuleABAP

CALL_FUNCTION_CONFLICT_LENG — CALL_FUNCTION_CONFLICT_LENG runtime error

CALL_FUNCTION_CONFLICT_LENG is raised when a CALL FUNCTION statement passes a parameter whose actual length does not match the length defined in the called function module's interface. It is most common in RFC calls between two systems, or between an external caller and SAP, where the DDIC structure behind the parameter differs in length on each side because one side was changed or transported without the other.

This page covers the CALL_FUNCTION_CONFLICT_LENG dump, which fires when a parameter length mismatch exists between caller and callee in a function module call, most often across an RFC boundary. It walks through the interface-drift causes that actually generate this dump, what to read in ST22, and how to fix it without masking a real structural inconsistency.

Published 16 Sept 2026· 1,247 words

What the dump means

This dump belongs to the CALL_FUNCTION family of runtime errors, all raised by the kernel's dispatch logic when a CALL FUNCTION statement cannot be executed as coded. CONFLICT_LENG specifically means the kernel compared the length of a parameter value being passed against the length the function module's generated interface expects, and found a mismatch. This is not a data-content problem and not a type mismatch (that would be CALL_FUNCTION_CONFLICT_TYPE) - it is purely about byte length. It typically surfaces on RFC-enabled function modules called across a system boundary, where the caller's idea of the interface and the callee's actual interface have diverged because one side holds an older or newer version of the DDIC structure involved. It can also occur within a single system if a generated function group interface is stale relative to the current active version.

Root causes that actually produce it

  • Cross-system RFC with mismatched structure versions: two systems in the landscape (ECC-to-S/4, ECC-to-CRM, or two clients calling a shared RFC destination) are on different support package or transport states, and a DDIC structure used as an import, export, or changing parameter has a different length on each side - typically because a field was lengthened, an append structure was added on one side, or a customer include was activated only in one system.
  • Stale generated interface: the function module's signature was changed and activated, but the calling program's compiled load or the function group's generated interface buffer was not refreshed, so the caller still works against the old length. This is common right after a transport that changes a structure used by many function modules.
  • External non-ABAP caller: an application using SAP JCo, the .NET connector, or a middleware adapter holds a client-side stub or copybook describing the interface. When the ABAP-side structure changes length, the external side keeps sending or expecting the old fixed length until its stub is regenerated.
  • Custom Z structure used in a released interface without a stable contract: a developer directly edited a Z structure referenced by an RFC-enabled function module's TABLES or CHANGING parameter, without treating that structure as a versioned interface, breaking every caller that has not been retransported.
  • IDoc or ALE segment length drift: in distributed scenarios, a segment definition was extended in one system's IDoc type but not in the partner system, and the length conflict surfaces through the function module handling the segment rather than through the IDoc processing transactions directly.

What to inspect in ST22

  • Short text and error class at the top of the dump - confirms this is a length conflict, not a type conflict, and names the function module involved.
  • 'What happened' section - identifies the exact CALL FUNCTION statement, the calling program, include, and line number where the call was issued.
  • Parameter details if shown - some kernel versions list the parameter name and the conflicting lengths (expected versus received); this tells you immediately which parameter and which structure to chase.
  • System and release information - if the call crossed an RFC destination, note the target system, its release and support package, and compare against the calling system; a mismatch here points straight at cause one.
  • Follow-up in SE37: display the function module's interface, check the type and length of the flagged parameter, and check its 'active' version against any recently transported change.
  • Follow-up in SE11: check the structure or table type behind the parameter for recent activation dates, append structures, or include changes.
  • SM59 for the RFC destination used, to identify the partner system and confirm its patch level.
  • SE01/SE10 or the transport logs for the structure, to see whether it was changed and whether that transport reached all relevant systems.

Resolution path

If the cause is a cross-system release or support package gap, the fix is to align the structure definition across the systems involved - either transport the corrected structure to the lagging system or roll back the change until both sides can be updated together; this requires a change request and coordination with the team owning the other system. If the cause is a stale generated interface within one system, regenerate the function group (or the affected programs) after the structure transport lands; no code change is needed, but a regeneration step should be added to the transport sequence. If an external non-ABAP caller is involved, the fix sits with whoever owns that client: their stub or copybook needs to be regenerated against the current interface, which is a change request on their side, not on the ABAP side. If a custom Z structure was changed informally, the long-term fix is to formalize it as a versioned interface object and only ever extend it (never shorten or reorder fields) so old callers stay compatible; this needs a change request plus a review of every caller of that structure.

The fix people try first (and why it fails)

The reflex fix is to change the length of the local variable or structure in the calling program until it matches whatever the dump reports, without asking why the two sides disagree. This makes the dump disappear but usually just moves the truncation somewhere less visible - fields get silently cut or padded, and the next failure shows up as a CONVT dump, a wrong value in a downstream posting, or a reconciliation break days later. Another common mistake is wrapping the call in a TRY block expecting a catchable exception; this is a raw runtime error at the kernel level, not a class-based exception, and wrapping it does not prevent the termination.

Prevention

Treat any DDIC structure used in an RFC-enabled function module interface as a public contract: extend it only by appending new fields, never by changing or removing existing ones, and never resize an existing field without a coordinated release across every calling system. After any transport that touches such a structure, regenerate the function group and confirm the interface is active on every system that calls it, not just the one where the change was made. In multi-system landscapes, keep a periodic comparison of shared interface structures between systems rather than discovering drift through a dump in production.

Whose problem this is

Primarily an ABAP development issue; Basis gets involved when the mismatch is between systems at different support package levels and a landscape-level fix or transport sequencing decision is needed. The handover note should name the function module, the specific parameter and structure, the systems and release levels compared, and which side (ABAP program, ABAP interface, or external client stub) needs the length correction.

Related SAP objects

Reviewed pages this object connects to in the ERPClimb knowledge graph.

Source: ERPClimb — https://erpclimb.com/sap-abap-dumps/call-function-conflict-lengERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.