Schedule Trigger fires dozens of concurrent executions on startup instead of oneSchedule Trigger fires dozens of concurrent executions on startup instead of one

Describe the problem/error/question

Hi everyone,
I’m having an issue with Schedule Triggers generating too many executions and I’m not sure how to fix it.
What my workflow does:
I have a customer support automation system. When a customer submits a support request, the data goes into a Google Sheet. A manager then reviews the request and fills in a “Decision” column (accepted / refused / escalate).
I have 3 workflows, each polling a different tab of the Google Sheet every 2 minutes:

  • Schedule Trigger (every 2 min)
  • Get all rows from Google Sheet
  • Code node: filter rows where Decision column was just filled in AND hasn’t been processed yet
  • Switch node: route based on the decision value
  • Actions: send email to customer, update sheet status, create support ticket, etc.
    So most of the time, the workflow runs, finds nothing to do, and stops. Only when the manager fills in a decision does it actually do something.
    The problem:
    I’m seeing way too many executions piling up. When the server restarts, I get a huge burst — dozens of executions all at the exact same timestamp, a mix of Errors (~40s) and Canceled (~1m7s).
    I think n8n might be trying to “catch up” on all the missed scheduled runs while the server was down. Or maybe the trigger is firing multiple times concurrently before the previous execution finishes.
    My questions:
  1. How can I prevent this startup burst of executions?
  2. Is there a way to limit concurrent executions per workflow?
  3. Is polling Google Sheets every 2 minutes with a Schedule Trigger a good approach, or is there a better pattern for this use case?
    Thanks a lot!

What is the error message (if any)?

Please share your workflow

Share the output returned by the last node

Information on your n8n setup

@Arthur_Mascot the startup burst is missed-runs catch-up — Schedule Trigger fires once per missed interval by default when n8n comes back up. theres a setting to disable that on the trigger node itself. before the specifics tho — are u on n8n cloud or self-hosted? the concurrent-execution knobs are different per environment. also worth flagging: Google Sheets has a Trigger node operation that watches row changes natively, way more efficient than polling every 2 min, but only if ur version exposes it.

I guess you are using main mode, @Arthur_Mascot .
What if you switch to queue mode?

Hi @Arthur_Mascot Welcome!
Have you tried removing the whole workflow and importing it again? So that it will get a new ID and the ghost executions will be cleared. You can reduce the concurrent execution count in your instance not per workflow i suppose.

And looking at your workflow it is a better choice to add a google sheet trigger then polling everything each time and add wait nodes in between

For the parameter on the Schedule Trigger — where exactly is the setting to disable catching up missed executions? I don’t see it in the node settings.

Also very interested in the Google Sheets Trigger approach — my workflow actually filters exactly on the “Decision” column: it retrieves all rows with the pending_validation status and checks if the “Decision” column has been filled. Can the native trigger specifically monitor this column and fire only when a new value is added to it?

Hello thank you :wink: How do I do that?

You can read here

Welcome @Arthur_Mascot to our community! I’m Jay and I am a n8n verified creator.

To disable catch-up, open your Schedule Trigger node and look for the “Fire on startup catch-up” toggle - it’s in the node settings panel. Turn that off and n8n will stop trying to run all the missed intervals on restart. This is the cleanest fix for your use case since you’re polling every 2 minutes and a catch-up burst doesn’t make sense for a support queue.

Thanks but I can’t find it :slight_smile:

@Arthur_Mascot which version are you on? this is v2.21.7

@Arthur_Mascot another point, the queue config is not on the node, but rather in the workflow config.
see this doc
Configuring queue mode | n8n Docs

@Arthur_Mascot the “Fire on startup catch-up” option is in the Schedule Trigger node under the Settings tab (not the Parameters tab). Open the node, switch to the Settings tab at the top, and you should see it there. If you’re on v2.21.7 and don’t see it, that toggle may have been added in a later release - in that case the alternative is to set WORKFLOWS_QUEUE_STARTUP to false in your environment variables, or simply restart n8n during a low-activity window and manually trigger the workflow once after restart.