ABAP short dumpObjectSYSTEM_NO_ROLLModuleABAP

SYSTEM_NO_ROLL — SYSTEM_NO_ROLL runtime error

SYSTEM_NO_ROLL is a resource-shortage runtime error raised when a work process cannot get the roll memory it needs to roll in or roll out a user context, or to service deep call stacks. It points to roll file exhaustion at instance level, undersized roll profile parameters, or a program with excessive call nesting or recursion, not a coding syntax fault.

This page covers the SYSTEM_NO_ROLL dump, the resource-shortage class distinct from extended-memory dumps like TSV_TNEW_PAGE_ALLOC_FAILED. It walks through the real causes seen in production, what to read in the ST22 dump and which monitoring transactions confirm the diagnosis, and how the fix splits between basis sizing work and ABAP recursion fixes.

Published 16 Sept 2026· 1,161 words

What the dump means

SYSTEM_NO_ROLL belongs to the resource-shortage category of runtime errors, alongside the TSV_TNEW family and MEMORY_NO_MORE_PAGING. Roll memory is the area the kernel uses to save and restore a user's ABAP context when a work process is reassigned between dialog steps, and it is also consumed as call-stack depth grows during nested PERFORM, CALL FUNCTION, and method calls. When the kernel tries to allocate roll memory for a context switch or a new stack frame and none is available, either because the instance-wide roll file is full or because the requesting program has pushed the stack unusually deep, the kernel aborts the step and raises this dump rather than let the work process hang. It is a systemic symptom: the program that triggers the dump is often not the program that is misbehaving.

Root causes that actually produce it

  • Roll file exhausted at instance level: too many work processes concurrently holding large roll contexts, often during peak dialog and batch overlap, with the roll file size or buffer sized for a lighter era of the system.
  • Undersized roll profile parameters relative to current workload: the per-context roll area and the total roll file size were set years ago and never revisited after user counts or batch parallelism grew.
  • Deep or unbounded recursion in custom code: a recursive function module, method, or PERFORM chain without a solid termination condition drives call-stack depth far beyond what any legitimate business logic needs, consuming roll memory disproportionately to the data actually being processed.
  • Extended memory exhaustion forcing fallback to roll area: when the extended memory pool assigned to the instance is full, some kernel operations that would normally use extended memory fall back to roll memory, which then runs out faster than expected.
  • Mass parallel processing spikes: parallel RFC calls, parallel cursor processing, or a burst of background jobs all requesting roll memory at the same moment, exceeding the shared roll file capacity even though no single job is abnormal on its own.
  • Interface or batch programs holding long-running dialog-style sessions open under heavy concurrent load, each holding its rolled-out context in the roll file for longer than the file was designed to support.

What to inspect in ST22

  • Short text and category in the dump header: confirms this is a resource shortage and not a coding error, which changes the whole investigation direction.
  • The 'What happened' and 'Error analysis' text: states whether the shortage was in the roll file, the roll area of the current context, or during a rollout/rollin operation specifically.
  • The ABAP call stack: read for depth and repetition; a stack with the same routine appearing dozens of times is the signature of unbounded recursion.
  • System environment block: shows the work process type, the operating system, and often the configured roll file size at the time of the dump.
  • SM50 or SM66 for the moment of the dump: check how many work processes were busy and what they were running concurrently, to distinguish a systemic pileup from an isolated program fault.
  • ST02 memory configuration monitor: check roll area and extended memory utilization trend leading up to the dump time, not just the current snapshot.
  • RZ10 or RZ11 for the active roll and extended memory profile parameters, compared against the workload actually observed.

Resolution path

If the ST02 trend shows the roll file consistently near capacity during peak periods, the fix is a basis sizing change: increase the roll file size and related roll parameters, which requires a change request and typically an instance restart to take effect. If the call stack in ST22 shows deep repeated recursion, the fix belongs to the ABAP owner of that program: add or correct a termination condition, cap recursion depth, or restructure the logic to an iterative form, then transport the correction. If extended memory exhaustion is the trigger, address the extended memory shortage directly, following the same path as for TSV_TNEW type dumps, since fixing roll parameters alone will not stop the fallback. If the cause is a burst of parallel background or RFC processing, the fix is scheduling discipline, spreading the jobs or reducing parallel degree, which is a functional or basis process change rather than a code change. Do not change roll parameters and recursion fixes in the same transport; verify each independently so the next occurrence can be attributed correctly.

The fix people try first (and why it fails)

The reflex is to bump ztta/roll_area or the roll file size parameters and restart the instance, treating every SYSTEM_NO_ROLL as a sizing problem. When the real cause is a recursive custom program, the larger roll file only buys time before the same program consumes it again, and the dump returns under slightly heavier load with a worse diagnosis lag because the sizing change masked the pattern for weeks. Equally common is restarting the affected work process or the whole instance, which clears the symptom instantly but destroys the only evidence, the live call stack, needed to identify recursive code before the next occurrence.

Prevention

Track roll area and extended memory utilization trends in ST02 over time rather than only reacting to a threshold alert, since roll shortages usually build gradually as user or batch load grows. For custom development, enforce a code review standard that every recursive routine has an explicit, testable depth or termination bound, and flag any function module or method that calls itself directly or indirectly. Review roll and extended memory profile parameters whenever user counts, batch job volume, or parallel processing degree change materially, not only after an incident.

Whose problem this is

Basis owns roll and extended memory profile sizing and instance-level capacity trends; ABAP owns any recursive or deeply nested custom code identified in the call stack. The handover note should state the ST02 utilization trend for the days leading to the dump, the full ABAP call stack with repeat counts, the work process load from SM50 or SM66 at dump time, and whether a parameter change or a code fix was applied, so the next occurrence can be compared against a known baseline.

Related SAP objects

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

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