IDoc statusObject29ModuleBTP_INTEGRATION

IDoc status 29 — IDoc Status 29 Error in ALE Service

Status 29 means the outbound IDoc failed inside the ALE layer itself, before syntax check and before a port or RFC destination was even addressed. The IDoc was generated by the application but the ALE service that applies the distribution model, filters, reduction, and outbound exits raised an error, so the IDoc never reached the point of being sent.

Status 29 is an outbound-only ALE error that occurs earlier in the chain than most consultants expect, before communication or syntax checks. This page covers the usual causes in the distribution model and filter setup, the check order across the relevant transactions, and how to reprocess without duplicating the underlying business document.

Published 16 Sept 2026· 1,019 words

What the status means

Status 29, Error in ALE service, is an outbound status only. It is set during the phase where the application document has already triggered IDoc generation and the ALE layer takes over to determine the receiving system, apply the distribution model, run segment and IDoc-type filtering, apply reduction, and execute any ALE outbound exits. If any of that fails, the IDoc is written with status 29 and processing stops there. It never reaches port determination, syntax check, or the communication layer, so status 29 problems are configuration or exit problems inside ALE distribution, not RFC or network problems.

Why it appears

  • Distribution model entry missing or inconsistent for the sender, receiver, and message type combination, so the ALE layer cannot resolve where the IDoc should go even though the application already decided to create it.
  • Filter object type or filter value defined for the message type does not match the actual data in the IDoc, so every IDoc gets rejected by the filter check rather than silently passed through.
  • IDoc reduction (a reduced message type variant) configured against a message type whose current segment structure has changed, so mandatory segments the reduction expects to drop or keep no longer align.
  • A custom ALE outbound exit or a user exit registered in the enhancement for outbound processing raises an exception or returns a fatal return code instead of handling an edge case gracefully.
  • Segment filtering configured at field level that references a field which does not exist in the segment version actually being processed, typically after a segment extension or version change.
  • Partner profile configured with a message type that has no matching, active distribution model entry, so the profile looks fine in isolation but the ALE service check still fails.
  • Conversion or exit errors during IDoc reduction processing, where a value mapping table referenced by the reduction is incomplete for the value actually present in the document.

What to inspect

  • WE02 or WE05 to open the specific IDoc, read the status record text in full, it usually names the failing check or the exit that raised the error.
  • BD64 to check the distribution model entry for the exact sender, receiver, and message type, including any filter object types attached to that entry.
  • BD87 to see whether other IDocs of the same message type from the same period are also stuck at 29, which points to a configuration change rather than a data-specific issue.
  • WE20 to confirm the partner profile for the receiver still lists this message type as outbound with a valid port.
  • WE19 to replay the exact IDoc data through the same ALE processing in test mode, which reproduces the failure without touching the real outbound queue.
  • Custom exit code, if named in the status text, checked directly with a debugger set at the point the exception is raised.

How to reprocess safely

Fix the ALE configuration or exit before touching the stuck IDoc. If the distribution model entry is missing or wrong, correct it in BD64 and verify the filter values match real data. If a reduction or field filter is stale, either update it to match the current segment structure or remove the filter if it is no longer needed. If a custom exit is failing, correct the exit logic and retest with WE19 using the same payload before reprocessing anything in production. Once the underlying cause is fixed, reprocess the IDoc from WE02 or BD87 using outbound reprocessing rather than recreating the source document. Do not recreate the sales order, delivery, or other source document to force a new IDoc, because the original document has already been posted in the source system and a second document creation duplicates the business transaction. Reprocessing status 29 replays only the ALE and communication steps, it does not touch the application document again, which is why it is the safe route once configuration is corrected.

The fix people try first (and why it fails)

The instinctive fix is to mass-reprocess every IDoc stuck at 29 immediately, assuming it is a transient glitch like a stuck queue. Because status 29 is a configuration or exit failure, not a timing issue, reprocessing without changing anything produces the identical error on every retry, and repeated reprocessing attempts clutter the monitor with duplicate status records that make root-cause analysis harder. Worse, if someone works around the block by recreating the source document instead of fixing ALE, the business transaction gets duplicated downstream once the configuration is eventually corrected and the original IDoc also reprocesses successfully.

Whose problem this is

This sits with the integration or ALE configuration team, since the root cause is almost always in the distribution model, filter setup, or an outbound exit rather than in the source application module. Hand over the IDoc number, the full status record text, and confirmation of whether other IDocs of the same message type are affected, since that scope detail tells the integration team whether this is a one-off data issue or a configuration regression.

Common pitfalls

Status 29 is often mistaken for a communication or RFC problem because it looks similar to later-stage outbound failures, but nothing has actually left the local system yet, so checking SM58 or the destination system wastes time. The status text can be terse when the failure originates in a custom exit, showing only a generic exception class rather than the real business reason, which pushes investigation toward ABAP debugging earlier than expected. A distribution model that looks correct for one receiver can still fail for a second receiver added later if the filter object type was not extended to include it.

Related SAP objects

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

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