I have a workflow with two scheduled triggers. One of them can trigger daily at a set time, but the other one cannot trigger, even though manual tests work fine. Logs also confirm that only one trigger is triggered daily.
Does Dify currently support ‘multiple triggers running in parallel’ for the same workflow?
Currently, Dify workflow’s “Scheduled Trigger” is designed to support multiple triggers within a single workflow, but there are a few common pitfalls that can lead to the phenomenon you described: one triggers on time, while the other only succeeds with manual testing but doesn’t execute as scheduled.
Let’s start with the conclusion:
Conceptually, “multiple triggers running in parallel within one workflow” is supported;
However, in the current version, there might be some limitations/bugs or configuration detail issues with scheduled triggers, often resulting in “only one running.” Below are some troubleshooting directions and a robust recommended solution.
I. Key Points to Confirm First
You can check these items one by one:
Enabled status of the two scheduled triggers
Are both “disabled”? The interface usually has enable/disable options or switches.
Sometimes after copying a node, the new scheduled trigger is off by default or not saved.
Time configuration conflict / overlap
For example:
One is “daily at 10:00”, and the other is also “daily at 10:00” or very close;
Some scheduling implementations might “merge” or “only keep one” of multiple plans for the same workflow at the same time.
It’s recommended to test first: change the second trigger to a completely different time (e.g., one at 10:00, the other at 10:05) and see if the second one runs normally.
Time zone issue
Which time zone does Dify’s scheduled task execute in?
If your server / Dify configuration is not Asia/Shanghai, and you are interpreting the time in the interface based on your local time, it’s possible it has already triggered, but you misread the time.
Compare:
Configured time of the scheduled trigger
Trigger time in the logs
Confirm if there is an 8-hour / several-hour discrepancy.
Can the two triggers be distinguished in the trigger logs?
Generally, each trigger node has its own ID/name. When you see “only one being triggered daily” in the log:
Do you genuinely only see a record for one node, or did both nodes run but subsequent processes merged?
If possible, give these two scheduled triggers distinctly different names to facilitate searching in the logs.
Are the same “entry” downstream nodes used?
For example, if both scheduled triggers connect to the same downstream node, and this node or subsequent nodes have some “mutually exclusive” logic (e.g., singleton tasks, locks, rate limiting), then it will appear as if only one is running.
II. Current Possible Design Limitations / Implementation Details
In some versions / implementations, the scheduler for “multiple schedules of the same workflow” might:
Perform “single schedule binding” for the same app / workflow, causing only the first configuration to take effect;
Or the scheduler service has a bug, causing only one of multiple cron jobs to take effect;
Or there are maximum concurrent task or reentrancy prevention limits:
For example, if a workflow is already executing at a certain point, the scheduler might skip new triggers to prevent reentrancy of the same workflow;
If the first trigger runs for a long time, the second one triggered within the same time window will be skipped.
Since I cannot directly check the source code and issue list for your specific version, I can only infer based on general workflow scheduling implementations. For safety, you can understand it this way for now: the design goal supports multiple scheduled triggers, but in some versions/scenarios, the behavior is not completely stable or only one takes effect.
III. Recommended Stable Solutions
To avoid being caught by these implementation details, here are two more robust practical solutions.
Solution A: Split into two workflows, each with one scheduled trigger
Split the current workflow logic into:
Workflow A: Only keep “Scheduled Trigger A + corresponding branch logic”;
Workflow B: Only keep “Scheduled Trigger B + corresponding branch logic”.
Configure scheduled tasks for each independently.
This way, the scheduling involves two completely independent scheduled tasks that do not affect each other.
Advantages:
Most intuitive, fewest pitfalls;
Logs and troubleshooting are very clear: you can tell at a glance which one didn’t run;
Does not depend on the current version’s specific implementation of “multiple schedulers for the same workflow.”
Solution B: Keep one scheduled trigger, use “routing/conditional nodes” to differentiate internally
Keep only one “Scheduled Trigger” at the workflow entry;
After the scheduled trigger, connect a “Conditional Judgment / Router Node”:
Here, determine which branch to take based on “current time / date / custom variables”:
For example:
Trigger once daily at 10:00
Inside the workflow, judge: if today is a weekday → take path 1; otherwise → take path 2.
Or split by conditions like date modulo 2, modulo 7, day of the week, etc.
If you want two different logics to run at two fixed times daily, you can:
Have one scheduled trigger with a slightly higher frequency (e.g., execute every half hour, but internally, only run “Logic A” if it meets the 10:00 ± X minute window, and “Logic B” if it meets the 15:00 ± Y minute window), and other time branches end directly.
Advantages:
Completely avoids compatibility issues with the scheduling of “multiple scheduled triggers” themselves;
All logic is centralized in one workflow, making it easier to maintain and view global status.
IV. Information You Can Help Confirm / Supplement
If you are willing to continue troubleshooting, you can provide the following information, and I can help you deduce the cause more specifically:
Your Dify version number (can be seen on the settings page or in docker-compose image tag).
Specific configuration methods for the two scheduled triggers (e.g.:
Trigger 1: Daily 10:00
Trigger 2: Daily 18:00
How is the time zone set?
Do you see any execution records for the second trigger node in the logs (screenshot or text description of node name/ID is sufficient)?
Do the downstream nodes of the two triggers share some nodes, or are they completely independent paths?
Summary
Theoretically: Dify supports “multiple triggers within the same workflow.”
The situation you are currently encountering is likely due to limitations/bugs in the scheduling layer for “multiple scheduled triggers within the same workflow,” or configuration issues like time conflicts or time zones, leading to only one triggering at runtime.
Until the official behavior of multiple schedulers is clarified, it is recommended to prioritize using “splitting into two workflows” or “one scheduled trigger + internal routing” to implement multiple scheduled tasks, which is more stable in actual production.
If convenient, you can first try the “splitting into two workflows” solution to see if both can trigger as scheduled, then let me know the result, and we can then consider if it’s worth raising an issue for the official team to fix.