IDoc statusObject66ModuleBTP_INTEGRATION

IDoc status 66 — IDoc Waiting for Predecessor IDoc

Status 66 means an inbound IDoc is deliberately parked because a serialization rule requires an earlier IDoc for the same key (material, vendor, customer, or similar) to post successfully first. It is not a technical error by itself; it becomes a problem when the predecessor IDoc is itself stuck in an error status and never clears, leaving the successor frozen indefinitely.

Status 66 appears on inbound IDocs held by a serialization check rather than by a posting failure. The page covers why the predecessor link breaks, how to trace the chain back to the real blocking IDoc, and why forcing a waiting IDoc through out of sequence causes silent master data corruption rather than a clean fix.

Published 16 Sept 2026· 1,135 words

What the status means

Status 66 is an inbound status. It sits before the application document posting step, at the point where SAP checks whether IDocs sharing a serialization key (typically object identifiers like material number, vendor code, or customer number) must be applied in a defined order. If a serialization rule is active for the message type and a predecessor IDoc carrying the same key has not yet reached a successful terminal status, the current IDoc is stopped here and marked 66 rather than being handed to the application posting program. It is a queue-hold status, not a data error status: the IDoc's own content may be perfectly valid. The block exists purely to prevent an older change from posting after a newer one, or vice versa, which would leave the master record in an inconsistent state.

Why it appears

  • Predecessor IDoc is stuck in an error status such as 51, 56, 63, or 64 and never reaches a status that satisfies the serialization check, so every later IDoc for the same key queues up behind it indefinitely.
  • Predecessor IDoc was never received at all, for example lost in transit, filtered out by a partner profile condition, or rejected before it entered the queue, so the successor has nothing to wait against except a link that will never resolve.
  • Predecessor IDoc was manually deleted or archived after being logically superseded, but the serialization pointer in the successor still references it, orphaning the wait condition.
  • Serialization group or sort field configuration groups unrelated IDocs together, for example matching on a key that is too broad, so IDocs that have no real business dependency end up waiting on each other.
  • Timestamp or sequence number on the inbound IDoc is wrong at source, often from the sending system's queue reordering messages during a network retry, so SAP perceives an out-of-order arrival even though no real predecessor exists.
  • A batch of change pointers or a mass distribution run (common with material, vendor, or customer master replication) generates a large chain of dependent IDocs in one run, and one early failure in that chain cascades into dozens of 66 entries.
  • Predecessor IDoc was reprocessed successfully but the serialization table was not updated in the same commit, leaving a stale wait entry after a short dump or lock timeout during processing.

What to inspect

  • Open the IDoc in WE02 or WE05 and note the serialization or sequence fields in the control record, plus the message type and the key value it is waiting on.
  • Use BD87 to locate the predecessor IDoc for the same key. BD87 usually shows the link and the predecessor's current status directly in the worklist for that message type.
  • Check the predecessor's status in detail. If it sits in 51, 56, 63, or 64, the root cause is there, not in the 66 record. Fix that IDoc first.
  • If no predecessor can be found at all, check whether it was deleted, archived, or never arrived, using the port and partner profile logs on the sending side.
  • Review the partner profile and serialization configuration for the message type to confirm the grouping key is what is expected, ruling out an over-broad or incorrect key.
  • Check for a batch of 66 entries sharing the same predecessor; resolving that single predecessor usually clears the whole chain at once via BD87 mass reprocessing.

How to reprocess safely

The predecessor IDoc must reach a genuine successful terminal status before the waiting IDoc is touched. If the predecessor is an error, correct the underlying data or configuration issue that caused its failure and reprocess it through the normal error-status route, not through the 66 record. Once the predecessor posts cleanly, the serialization check clears automatically and the waiting IDoc becomes eligible for normal inbound processing, typically picked up by the next scheduled run of the inbound processing report or reprocessed manually through BD87. If the predecessor is genuinely gone, for example lost before entering the queue, the serialization link has to be removed or the wait condition manually released, and this should only be done after confirming with the sending system what the correct current state of the master object actually is, since posting the successor without its predecessor risks applying changes out of the intended order. Duplicate posting risk here is really a duplicate-application-of-stale-data risk: pushing the successor through while skewing the sequence can silently overwrite a newer value with an older one.

The fix people try first (and why it fails)

The reflex is to open the 66 IDoc in BD87 and force it straight to a processed status, treating the wait as an annoying technical block. This skips the sequencing the system was designed to enforce. If the predecessor actually contained a later change than the one already applied, forcing the successor through in the wrong order posts an outdated value on top of current data, for example reverting a price, address, or valuation change that was already correctly applied by something else. The record ends up factually wrong with no error status flagged anywhere, and the mistake is usually only found later during a reconciliation or audit.

Whose problem this is

First responsibility sits with whoever monitors the inbound IDoc queue, usually Basis or the middleware/interface team, to trace the chain back to the actual blocking predecessor. Resolution of the predecessor's error, however, belongs to the functional team that owns the master data or document type involved, for example MM for material replication or FI for vendor and customer master changes. Serialization configuration issues are an interface/technical design question and should go back to whoever set up the ALE or IDoc distribution model.

Common pitfalls

Status 66 does not look urgent because it carries no error message, so it is easy to leave unattended for days while the real problem sits quietly in the predecessor's error status elsewhere. A single failed predecessor can hold back a long chain of successors for the same master object, so the visible count of 66 entries can look far worse than the actual number of distinct problems. Serialization keys are sometimes set broader than intended, causing unrelated business documents to block each other for no real reason, which is a configuration defect rather than a data defect and needs a different owner to fix.

Related SAP objects

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

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