Loading
システム管理者に対するフィッシング耐性MFA・全従業員ユーザーMFAの適用のお知らせ 続きを読む
ただいま大変多くのお問い合わせをいただいており、ご連絡までにお時間を頂戴しております続きを読む

Invalid Cross Reference ID Errors on Donor Gift Summary Writeback in a Data Processing Engine Recipe

公開日: Jul 29, 2026
説明

The nightly Donor Gift Summary batch (a Data Processing Engine recipe) completes with a Completed status, but a fixed number of writeback records fail with:

invalid cross reference id

In the reported case, the recipe calculated 8,086 donor summaries; 7,721 wrote successfully and 365 failed. The org contained exactly 7,721 existing Donor Gift Summary records, so the 365 failures correspond one-to-one with donors who have no existing summary record.

Root cause:

  1. The recipe routes all calculated summaries to a single writeback node configured with the Update operation.
  2. An Update operation must match an existing target record. For donors who already have a Donor Gift Summary, the update succeeds.
  3. For donors with no existing Donor Gift Summary, there is no record to match, and the platform returns the generic Invalid Cross Reference ID error.
  4. The separate Insert node that would create records for new donors is processing 0 rows, so new donors are never inserted. This is a routing gap in the recipe, not a data problem with any specific account.

Common data-related causes were ruled out: no recently deleted or merged donor accounts, no summaries pointing at a deleted campaign, and nothing in the Donor Gift Summary recycle bin.

解決策

Change the writeback step so new donors are inserted and existing donors are updated in one pass. The Upsert approach is the cleanest fix:

  1. Go to Setup and search for Data Processing Engine. Open the affected recipe (for example, the Donor Gift Summary recipe) to view the canvas and its writeback nodes.
  2. Select the writeback node currently configured as Update (the node throwing the errors).
  3. In its configuration panel, change the Operation from Update to Upsert.
  4. When prompted, choose the matching field Upsert uses to decide update vs. insert. Use the field that uniquely ties each summary to its donor (the account or contact lookup the recipe populates, or a record Id carried through the recipe).
  5. Save the node, then save and activate the recipe.

After this change, the next run updates existing summaries and inserts the new ones in the same pass, with no failures. Once Upsert is in place, the separate Insert node becomes redundant (it processes 0 rows); it can be left in place or removed later.

Alternative: keep the Insert and Update nodes separate and repair the branch logic so summaries with no matching existing record are routed to the Insert node instead of the Update node. Upsert is the simpler path.

Note: a forced/manual run may complete with zero failures if the timing changes which records exist; confirm which scheduled run produced the failures when comparing results.

ナレッジ記事番号

005390228

 
読み込み中
Salesforce Help | Article