n8n bot with enabled:false still triggers HTTP calls to webhookUrl
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 62/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- postgresql, rabbitmq, typescript
- Domain
- api, backend, distributed-systems
Research direction
Start with the n8n event-dispatch path used after POST /n8n/create/:instanceName and POST /n8n/changeStatus/:id/:instanceName, then reproduce the listed WhatsApp message flow with RabbitMQ events enabled. Trace how the bot's enabled flag is read before webhook delivery. Done means disabled bots produce no webhook HTTP calls while enabled bots still receive the expected events.
Written by the indexing model from the issue text.
Description
Summary: An n8n bot (integration) whose config has enabled: false keeps sending HTTP calls to its webhookUrl on incoming WhatsApp message events. On v2.3.7 we observed hundreds of POST requests per day to the bot's webhookUrl while the bot record had enabled = false; traffic only stopped after the bot record was deleted via DELETE /n8n/delete/:id/:instanceName and the module env N8N_ENABLED=false was in place.
Environment: Evolution API v2.3.7 (Docker Swarm, PostgreSQL persistence, RabbitMQ events enabled).
Endpoints involved:
POST /n8n/create/:instanceName(bot config withenabledflag)POST /n8n/changeStatus/:id/:instanceName(enable/disable)GET /n8n/find/:instanceNameDELETE /n8n/delete/:id/:instanceName
Expected behavior: When a bot's enabled is false, the integration must NOT dispatch any HTTP call to webhookUrl.
Actual behavior: Message events continue to be POSTed to webhookUrl while enabled=false. Payloads look like MESSAGES_UPSERT events (body sizes 13–1845 bytes) and arrive at a steady rate of a few per minute, causing continuous 404 traffic when the target workflow/webhook is removed. Disabling the whole module (N8N_ENABLED=false) correctly makes the /n8n/* API routes return 400 {"message":["N8n is disabled"]}, and the outgoing flood only stops after the bot record itself is deleted.
Repro steps:
- Create an instance and connect WhatsApp.
POST /n8n/createwith{ "name": "bot1", "enabled": true, "url": "https://your-request-bin/webhook", "triggerType": "all", "listeningFromMe": true }.- Receive a message → a POST arrives at the webhook URL.
- Disable the bot (
POST /n8n/changeStatus/:id/:instanceNameor setenabled=falsein the record). - Receive another message → a POST still arrives at the webhook URL (bug:
enabled=falseis ignored in the event-dispatch path).
Notes: The N8N_ENABLED=false module-level guard works for the API routes; the per-bot enabled flag appears not to be honored (or is cached/stale) when dispatching events.
- Dominant language
- TypeScript
- Stars
- 9.6k
- Forks
- 7.3k
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from evolution-foundation/evolution-api
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
-
Difficulty 1/5 1-3 hours Newbie friendliness 88/100
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
-
Difficulty 1/5 Under an hour Newbie friendliness 88/100
evolution-foundation/evolution-api#2700 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
All issues in evolution-foundation/evolution-api
Similar issues
-
blocklist removal
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
MetaMask/eth-phishing-detect#296544 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
pastelsky/bundlephobia#1122 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
category/development priority/P2 scope/file-operations scope/testing type/enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
-
Enatega Customer and Rider app: Add-ons price is not visible to customer after order is placed. Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100