Adaptive AI Knowledge Base
Automation, Workflows & AI
A Race Condition is when two (or more) updates happen at the same time (in the same second). The two changes "race" and they might execute in a different order than they should, or one might signal that it executed but it really didn't.
Open the exact execution via the message deep link
Opening the execution directly from the impacted message ensures you’re reviewing the correct run, contact, and timestamp before diagnosing timing issues.
Steps:
- 1Go to Conversations and open the conversation with the impacted message.
- 2Open message details for the message.
- 3Click Workflow (deep link) to open Execution Details with context loaded.
- 4Review the timestamps and action order to confirm whether multiple actions fired in the same second.
Fallback: If the Workflow link is not available in message details, open the execution from logs:
- Workflows → open workflow → Logs, then filter/search by contact and the time window around the message.
Example Race Condition: Add Tag Executed But Not Added
In this example, we can see that the tag was added successfully to this contact in the workflow execution logs.
However, when we check the contact record, there is no sign of the tag.
Lets go back to the execution log and pay attention to the time. The "Add to workflow" and "Add Tag" action fired at the same time within the exact same second, which is a race condition.
How To Prevent a Race Condition
To fix the race condition, just add a Wait action of 1 minute.
https://www.loom.com/share/f4adf9e14dab429da0cc2fedbb7e5e36
With a Wait 1 minute action, there is no chance of the race condition occurring.
Before you begin
“Troubleshooting Workflow Executions - Race Conditions” is part of the Automation → Workflows area in Adaptive AI. Create and manage active, inactive, and draft workflows. Automation changes can affect many records at once, so the safest approach is to define the intended entry condition, action, and stopping point before publishing anything. The objective is not merely to save a setting; it is to confirm the result works for the staff member or customer who will depend on it.
- Write down the exact trigger, filters, expected action, and condition that should stop or bypass the automation.
- Use an internal test contact with complete sample data, a valid communication channel, and consent appropriate to the test.
- Confirm that every connected account, custom field, pipeline, calendar, or template referenced by the automation still exists and is available.
- Record the current published status and settings so you can compare behavior or restore the earlier configuration if necessary.
- Choose a quiet test window when a controlled enrollment cannot interfere with active customer communication.
Verify the result
After completing the instructions in this guide, use a controlled test before treating the setup as finished. A saved screen or success message confirms configuration, but only an end-to-end test confirms the business outcome.
- 1Save the configuration, review every branch from top to bottom, and publish only after required fields and warnings are resolved.
- 2Run one controlled test using known inputs and note the exact time the test record entered the automation.
- 3Open execution history and confirm that the record followed the expected branch in the correct order.
- 4Verify the intended message, task, field update, or status change occurred once and contains the correct merged information.
- 5Run a negative test that should not qualify; it should remain outside the automation without producing side effects.
Troubleshooting checklist
If the result differs from what you expected, preserve the current state and isolate one variable at a time. Start with the checks below before deleting the configuration or rebuilding it from scratch.
- Confirm the automation is published and that the trigger filters match the test record exactly, including capitalization and date conditions.
- Review re-entry settings to determine whether the same record is allowed to enter again or is being correctly excluded.
- Check the first failed or skipped step in execution history instead of changing several steps at the same time.
- Verify wait steps, account time zone, business-hour windows, and scheduled-send rules when an action appears delayed.
- Reconnect or reauthorize any external service that reports an expired credential, missing scope, or unavailable resource.
Best practices
- Use names that state the audience, trigger, and outcome so another administrator can understand the automation without opening it.
- Keep entry filters narrow and add explicit stop conditions to prevent duplicate messages, tasks, or opportunity changes.
- Respect contact consent, do-not-disturb status, quiet hours, and channel-specific opt-out requirements in every communication path.
- Change one behavior at a time, test it, and document the result before expanding the automation to more records.
- Review execution errors and unexpected enrollments after launch, then again after any connected integration or template changes.