Skip to content

LOAD_PROGRAM_CLASS_MISMATCH

A loaded class or program is incompatible with the version expected by the calling program.

The runtime detected a version mismatch between a class (or program) and a program that was compiled against an older version of it. The calling program's metadata no longer matches the actual class definition.

Symptom

ST22 shows:

Runtime Errors         LOAD_PROGRAM_CLASS_MISMATCH
Short text             Program "CLASSNAME" does not match its load version.

The dump often occurs immediately after a transport that changed a class interface without re-activating all dependents.

Cause

When a class's public interface changes (new method added, parameter renamed, attribute type changed) and the class is transported, all programs that use it must be regenerated against the new version. If they are not:

  • The calling program was compiled against the old class signature.
  • The loaded class has the new signature.
  • The runtime detects the mismatch and dumps.

Common triggers:

  • Transporting a class without including all programs that reference it in the same TR.
  • Activating a class in development after its callers were already transported.
  • Incomplete mass activation after a support package application.

Fix

Step 1 — Identify the mismatched class from ST22 The short text names the class/program. Note it.

Step 2 — Re-activate the class In SE24, open the class and press Activate (Ctrl+F3). This regenerates the class pool.

Step 3 — Re-activate all dependent programs

SE80 → Repository Browser → search for the class name
→ Where-Used List → select all programs
→ for each: open in SE38 → Activate

Or use mass activation:

SE38 → Utilities → Mass Activation
Enter the program names from the where-used list and activate all.

Step 4 — Transport the regenerated versions After activation, re-transport all affected programs so the fix reaches QAS/PRD.

Use the Where-Used list proactively

Before transporting a class with interface changes, run the where-used list in SE80 and add all dependent programs to the same transport request. Activate and transport together.

Prevention

  • When changing a class's public interface, always include all calling programs in the transport request.
  • After applying support packages, run a mass activation (SGEN) if the package includes class changes.
  • Use the where-used list (SE80 → Where-Used) before transporting any class change.

See also

  • LOAD_PROGRAM_NOT_FOUND — related dump when the program itself is missing
  • Transaction SE24 — Class Builder (activate classes here)
  • Transaction SGEN — program generation (mass activation)
  • Transaction ST22 — ABAP runtime error analysis

Comments