Skip to content

Flow Not Running

Outcome: Figure out why your flow's webhook isn't firing it — and fix it. Audience: Everyone · Tags: troubleshooting, flow, webhook, trigger

Your flow exists, you've called what you believe is its webhook, but no new run appears. Work down this list — it's ordered most-likely first.

Symptoms

  • You call the webhook and no new run shows up in run history.
  • The sender (the other system) reports it sent something, but nothing happened on the SnapLink side.
  • A test request from a browser/curl returns a non-2xx status.

Possible causes & fixes

1. The flow has no promoted version, or isn't Active

A flow only accepts webhook traffic once it has a live version — a draft that's been checked and promoted — and its status is Active. A flow that's still a bare Draft, or that's been Disabled/paused, or Archived, rejects the trigger.

Fix: Open the flow and confirm its status. If it was built through Snap Studio, Save & test it in Stage 3 both saves and promotes a version in one step, so a flow that made it through Studio successfully is already live. If it's a Draft, validate and activate it — see Activating flows.

2. The webhook URL is wrong — missing the flow ID, or the secret

The webhook path is:

/api/v1/webhooks/<flowId>/<secret>

Both the flow ID and the secret are required, and they must match exactly — get the current, correct URL from GET /flows/:id/webhook (or the flow's page in the app) rather than reconstructing it by hand or reusing one from memory. An unrecognized flow ID or a wrong/rotated secret is rejected before SnapLink even checks whether the flow is active — see Webhook issues for exactly what that rejection looks like and why.

3. You're testing from a browser and hitting CORS

Calling the webhook directly from browser JavaScript (rather than curl, a backend, or your sending system's own server-side call) is subject to CORS. If the calling page's origin isn't in the operator's CORS_ORIGINS setting, the browser blocks the request before SnapLink processes it — this shows up as a network/CORS error in the browser console, not a SnapLink error response. Fix: test with curl/Postman/your backend instead of browser JS, or ask your administrator to add the origin (see Administration → CORS). This does not affect server-to-server webhook senders.

4. You're hitting the rate limit

Webhook ingress is rate-limited per IP, per flow endpoint, and per workspace. A burst beyond the limit is rejected with 429. See Rate limiting.

Advanced diagnostics

  • Send a manual test request and read the raw HTTP status:
    curl -i -X POST https://api.snaplink.cloudsolutionaccelerators.com/api/v1/webhooks/<flowId>/<secret> \
      -H "Content-Type: application/json" \
      -d '{"test":true}'
    
    202 means SnapLink accepted it and created a run — then check run history for that run. Anything else means it was rejected before a run was created; see Webhook issues for what each status means.
  • Confirm the workspace. Make sure you're viewing the same workspace the flow actually lives in — a flow in another workspace is invisible to you, not just hard to find.
  • Check recent runs regardless. If a run was created but then failed, that's a different problem — see Execution failures or Connector failed.

When to contact support

You're calling the exact URL from the flow, getting a 202 back every time, but no run appears in history for that flow. Contact support with the flow name, the time, and the response you saw.


Related: Webhook issues · Activating flows · Rate limiting

Was this helpful? 👍 👎