Expand my Community achievements bar.

Join Adobe Journey Optimizer product experts for a live Ask Me Anything on October 15th at 8 AM PT about Expanding Your Mobile Reach with RCS & WhatsApp in AJO!

Troubleshooting Step Events in Adobe Journey Optimizer: Diagnosing Errors, Discards, and Failures for Reliable Customer Journeys

Avatar

Employee

6/30/25

Troubleshooting Step Events in Adobe Journey Optimizer: Diagnosing Errors, Discards, and Failures for Reliable Customer Journeys

This is Part 2 of a 3-part series on Step Events in Adobe Journey Optimizer. Jump to: Mastering Step Events in Adobe Journey Optimizer: Fundamentals, Schema, and Essential Queries for Da... | Troubleshooting Step Events in Adobe Journey Optimizer: Diagnosing Errors, Discards, and Failures fo... | Optimizing and Validating Adobe Journey Optimizer Step Events: Performance Analytics, Feedback Integ...

⚠️Schema disclaimer – Field names may evolve. Always verify against the public XDM reference: https://github.com/adobe/xdm/tree/master/docs/reference/adobe/experience/journeyOrchestration .

Picture an email that never leaves the station. Marketing is fuming, DevOps is shrugging, and you're the last line of defence. Time to interrogate Step Events.

Adobe's stock query examples include a basic error count per node; this post shows you how to diagnose those errors in style.

Already comfortable counting entrances/exits? Jump back to Step Events, Part 1: Fundamentals for refreshers; then continue here.

 

i) Understanding Error Fields: Decoding Step Event Failures in Adobe Journey Optimizer

Field What it captures

actionExecutionError High-level message (e.g. ACTION_EXECUTION_ERROR )
actionExecutionErrorCode Partner-specific code (SMTP, SMPP, HTTP)
actionExecutionOriginError Origin system description
fetchError , fetchErrorCode Errors during personalisation fetch

Only one of these needs to be non-NULL for the step to be considered "in error".

ii) Node-Level Error Heatmap

When things go wrong, the first question is 'where?'. This query pinpoints which journey nodes are generating the most errors.

SELECT _experience.journeyOrchestration.stepEvents.nodeName                AS node,
       COUNT(DISTINCT _experience.journeyOrchestration.stepEvents.profileID) AS profiles
FROM   journey_step_events
WHERE  _experience.journeyOrchestration.stepEvents.journeyVersionID = '<journeyVersionID>'
  AND  timestamp > (NOW() - INTERVAL '6 hour')
  AND (
        _experience.journeyOrchestration.stepEvents.actionExecutionError IS NOT NULL OR
        _experience.journeyOrchestration.stepEvents.fetchError IS NOT NULL)
GROUP  BY node
ORDER  BY profiles DESC;

image.png

iii) Drill-Down for a Single Action

Now that we know the 'where,' let's find the 'why.' This gives you the raw error codes for a specific, problematic action node.

SELECT timestamp,
       _experience.journeyOrchestration.stepEvents.profileID            AS profile,
       _experience.journeyOrchestration.stepEvents.actionExecutionError AS err,
       _experience.journeyOrchestration.stepEvents.actionExecutionErrorCode AS code
FROM   journey_step_events
WHERE  _experience.journeyOrchestration.stepEvents.journeyVersionID = '<journeyVersionID>'
  AND  _experience.journeyOrchestration.stepEvents.nodeName = '<Node-Name-Unique>'
  AND  _experience.journeyOrchestration.stepEvents.actionExecutionError IS NOT NULL
ORDER  BY timestamp DESC
LIMIT  100;

Why unique Node Name? If your canvas re-uses the same label, use nodeID instead.

 

image.png

iv) Fetch vs. Send – Which Side Failed?

Is the problem with getting the personalization data (fetch), or sending the message (execution)? This query settles the debate.

SELECT CASE WHEN fetchError IS NOT NULL THEN 'fetch-error'
            WHEN actionExecutionError IS NOT NULL THEN 'execution-error' END AS stage,
       COUNT(*) AS occurrences
FROM   journey_step_events
WHERE  _experience.journeyOrchestration.stepEvents.journeyVersionID = '<journeyVersionID>'
      AND  _experience.journeyOrchestration.stepEvents.nodeName = '<Node-Name-Unique>'
GROUP  BY stage;

v) Triage Workflow

  1. Run the heat-map query – identify the hottest node.
  2. Drill into that node for last N hours.
  3. If fetch errors dominate → look at data prep & personalisation sources.
  4. If execution errors dominate → contact support and inspect action provider logs (Message, custom action, etc.).

vi) Dispatcher & State-Machine Discards

1. EVENT_WITH_NO_JOURNEY (Dispatcher)

When an incoming event matches no running journey, the Dispatcher drops it. Use this query to trend such mis-routed events.

SELECT DATE(timestamp) AS event_day,
       COUNT(*)        AS discards
FROM   journey_step_events
WHERE  _experience.journeyOrchestration.serviceEvents.dispatcher.eventType = 'EVENT_WITH_NO_JOURNEY'
GROUP  BY event_day
ORDER  BY event_day DESC;

image.png

2. State-Machine Discard Taxonomy

If the event did reach a journey but was later rejected, the State-Machine records the reason.

eventType Meaning First Fix

terminatedJourneyVersion Version stopped/deleted Republish journey
reentranceNotAllowed Re-entrance policy blocked Allow re-entry or start new instance
expiredInstance Instance >30 days Shorten journey or re-start
journeyVersionLoadingError Runtime load failed Contact support

3. Query Template

SELECT _experience.journeyOrchestration.serviceEvents.stateMachine.eventType AS reason,
       _experience.journeyOrchestration.stepEvents.journeyVersionID         AS jvid,
       COUNT(*)                                                             AS profiles
FROM   journey_step_events
WHERE  _experience.journeyOrchestration.serviceEvents.stateMachine.eventCode = 'discard'
GROUP  BY reason, jvid;

image.png

Summary & What's Next

You now have a systematic playbook for interrogating Step Events when things go sideways— from zeroing-in on the hottest error nodes to dissecting segment-export discards. In Part 3 we take the gloves off and focus on performance and guardrails.

Continue your journey: Mastering Step Events in Adobe Journey Optimizer: Fundamentals, Schema, and Essential Queries for Da... | Optimizing and Validating Adobe Journey Optimizer Step Events: Performance Analytics, Feedback Integ...

1 Comment

Avatar

Level 1

7/24/25

Maintaining smooth, customised client journeys requires troubleshooting Step Events in Adobe Journey Optimiser. Problems that arise for the user, such as mistakes, discards, or step event failures, can break the flow and have a detrimental effect on the client experience. It's critical to comprehend what each kind of issue signifies and how to effectively address them in order to guarantee dependable operation.

Common Troubleshooting Points:

  • Errors: These occur when a technical issue or misconfiguration prevents a step from executing. Check activity logs for detailed error messages and validate integration settings (e.g., API failures, audience resolution issues).

  • Discards: These indicate that a customer was intentionally removed from a journey due to not meeting entry or progression criteria. Review segment definitions and transition rules for accuracy.

  • Failures: Often related to system downtime or data processing issues. Monitor system health and retry mechanisms to ensure critical paths are resilient.

You can filter, track, and examine these step events by going into the diagnostics tab of each journey and using the monitoring tools in Adobe Journey Optimiser. More dependable and individualised client experiences result from the proactive identification and resolution of problems through the establishment of clear records, alarms, and backup plans. For More Call - +1-325-244-1757