ABAP short dumpObjectDYNPRO_NOT_FOUNDModuleABAP

DYNPRO_NOT_FOUND — DYNPRO_NOT_FOUND runtime error

DYNPRO_NOT_FOUND is a runtime error raised when the ABAP runtime tries to display a screen (dynpro) number that does not exist for the given program in the current client. It usually points to an incomplete transport, a dynamically calculated screen number gone wrong, or a transaction entry left pointing at a screen that was deleted or renumbered during development.

This page covers the DYNPRO_NOT_FOUND short dump: what the runtime is actually complaining about, the specific development and transport situations that trigger it, and how to read the dump fields to find the missing screen number and program combination fast. It also covers the resolution paths for transport gaps versus coding bugs, and the reflex fixes that mask rather than close the gap.

Published 16 Sept 2026· 1,212 words

What the dump means

DYNPRO_NOT_FOUND fires when a CALL SCREEN, SET SCREEN, or implicit screen navigation (menu exit, LEAVE TO SCREEN, table control paging) resolves to a program and screen number pair that the runtime cannot locate in the client the user is working in. A dynpro is a generated object with its own load, separate from the ABAP source; the source can compile and the transaction can start, and the error only appears the moment that specific screen number is actually requested. This is why it often surfaces only for one menu path, one batch input recording, or one specific customer/company code combination that drives a dynamic screen number, while the rest of the transaction works normally.

Root causes that actually produce it

  • Incomplete transport: the program object was transported to the target system but one or more screens belonging to it were left out of the request, forgotten in a separate task, or excluded because the developer only released the main program object. This is the single most common cause in production incidents, and it typically appears right after a go-live or a hot fix.
  • Screen deleted or renumbered during development: a developer removes an obsolete screen or renumbers it in SE51/Screen Painter, but a CALL SCREEN statement, a SET SCREEN in a user exit, or a custom transaction entry in SE93 still references the old number. The code compiles fine; the failure only happens at runtime.
  • Dynamically computed screen number: the screen number is held in a variable (built from a customizing table, a BAdI, or a case structure) and an unexpected value, blank, zero, or a typo in one branch produces a number that was never created as a screen.
  • Cross-client inconsistency: the screen is active and generated in one client but the transport that activated it in the target client did not run, or ran only partially, so the object exists in the dictionary layer but not as an active generated screen in the client actually being used.
  • Custom modification or user exit calling a standard screen number that only exists in a specific SAP release or industry solution, invoked in a system where that screen was never delivered.
  • Batch input session or CALL TRANSACTION USING data pointing to a screen sequence that matches an older version of the transaction, replayed after the transaction's screen flow was changed.

What to inspect in ST22

  • Short text of the dump: it names the program and the exact screen number the runtime tried to load. Note both precisely; the screen number is the search key for everything that follows.
  • SY-CPROG and SY-DYNNR in the runtime error's system field listing: confirms which program actually issued the call, which is not always the program shown in the transaction's initial screen if the call happened from an include or a called subroutine.
  • The call stack (ABAP call stack section of the dump): shows the exact statement, CALL SCREEN, SET SCREEN, or an implicit dialog step, and the source line, letting the reviewer see if the screen number was a literal or a variable.
  • Transport/version information: check whether the program was recently transported by cross-referencing the timestamp of the incident against the transport log in SE01/SE09 for that program and its screen objects specifically, not just the main program object.
  • SE80 or SE51 for the named program: list the existing screens and confirm whether the reported number is simply absent, present but inactive, or present but only in a different client.

Resolution path

If the screen is genuinely missing from the target client because of an incomplete transport, identify the source system where the screen exists, add the screen object explicitly to a new transport request, and release and import it; this requires a change request through the normal transport process, it is not something fixed by a config change. If the screen was deleted or renumbered on purpose and the call site is stale, correct the CALL SCREEN or SET SCREEN statement, or the transaction's screen assignment in SE93, to point at the current number; this is an ABAP code correction and needs its own transport. If a dynamically built screen number is wrong, trace the customizing or exit logic that constructs it, fix the source data or the case logic, and add a defensive check so an unresolved value never reaches CALL SCREEN. If the cause is a batch input session built against an old screen sequence, the session itself is unusable and must be recreated against the current transaction flow rather than repaired.

The fix people try first (and why it fails)

The common first move is to re-run the transaction, or ask the user to log off and log back in, on the theory that it is a buffer glitch. It sometimes appears to work if the screen was present in a buffer from another client or an earlier session, which just delays the recurrence. The other frequent reflex is to open SE51 and hit activate on the program's screens without first confirming which screen number is actually missing; if the real gap is in the transport, activating locally fixes the one system being looked at and leaves every other system in the landscape with the same defect.

Prevention

Always transport the full object list for a program change, including all screens, and use the transport organizer's object list check rather than manually picking objects. Avoid building screen numbers from customizing tables or string concatenation without a validation step that confirms the resulting number exists before CALL SCREEN is issued; a static lookup table with only known-valid numbers is safer than free construction. Run a consistency check between development and production screen objects as part of release testing, not just the program source.

Whose problem this is

ABAP development owns this dump in nearly all cases, since the fix is either a code correction or a transport correction tied to development objects. Basis is only involved if the transport itself fails to import or the client is not properly set up. The handover note should state the exact program and screen number from the dump, whether the screen exists in the source system, and which transport request last touched that program's screens.

Related SAP objects

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

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