Repository navigation
Instance settings silently reset to defaults (rabbitmqEnable, events, flags) without container restart #111
Description
Welcome!
- Yes, I have searched for similar issues on GitHub and found none.
What did you do?
- Created an instance via Manager and connected it via QR code.
- Configured the instance through the Manager:
- RabbitMQ: Enabled
- Events: ALL (which produced
MESSAGE,SEND_MESSAGE,READ_RECEIPT,PRESENCE,HISTORY_SYNC,CHAT_PRESENCE,CALL,CONNECTION,LABEL,CONTACT,GROUP,NEWSLETTER,QRCODE,BUTTON_CLICK,PICTURE,USER_ABOUT) - Advanced settings:
alwaysOnline,rejectCall,readMessages,ignoreGroups,ignoreStatusall set to true
- Verified the configuration was persisted via
GET /instance/all. Everything was correct. - The setup worked as expected for several hours. Messages were published to the
{instanceId}.message,{instanceId}.sendmessageand{instanceId}.receiptqueues,
and consumed successfully by n8n. - Left it running overnight. Did not restart the container. Did not touch the Manager.
- The next morning, checked
GET /instance/allagain.
What did you expect?
The instance configuration should persist as long as it is not explicitly changed.
Specifically, I expected rabbitmqEnable, events and the advanced settings flags
to remain exactly as I had saved them.
What did you observe instead of what you expected?
All instance settings had silently reverted to their default values, without any
container restart and without any API call from my side.
Comparison of GET /instance/all before and after:
| Field | Before (configured) | After (reset) |
|---|---|---|
rabbitmqEnable |
"enabled" |
"" |
events |
MESSAGE,SEND_MESSAGE,READ_RECEIPT,PRESENCE,HISTORY_SYNC,... |
MESSAGE |
alwaysOnline |
true |
false |
rejectCall |
true |
false |
readMessages |
true |
false |
ignoreGroups |
true |
false |
ignoreStatus |
true |
false |
Critical consequence: because rabbitmqEnable was silently cleared, the instance
stopped publishing any event to RabbitMQ. My entire downstream pipeline went dead
with no error, no log line, and no warning. The queues simply stopped receiving messages.
At the same time, the instance disconnected from WhatsApp and entered an infinite
reconnection loop (disconnect_reason: "Reconnecting"). While in this state,
the QR code endpoint never returned a code, so the instance could not be re-paired.
docker compose restart evolution-go cleared the reconnection loop, but the
configuration had to be re-entered manually through the Manager.
Important: the container had 32 hours of uptime at the moment I observed the
reset (docker compose ps confirms). So this was not caused by a restart or a
fresh boot — the running process reset its own persisted configuration.
Two possibly separate issues here:
- Instance configuration being reset without a restart (this is the serious one).
/instance/qrnever returning a QR while the instance is stuck inReconnecting.
I cannot rule out that the WhatsApp disconnection itself is caused by my phone number,
which has a long history of re-pairing (jid shows device ID :41). But a bad phone
number should not cause the API to wipe its own configuration from the database.
Screenshots/Videos
No response
Which version are you using?
0.7.2
What is your environment?
Linux
If applicable, paste the log output
evolution-go | 2026/07/13 09:19:30 [WARN] [] Client disconnected on attempt 2/2, attempting reconnection...
evolution-go | 2026/07/13 09:19:35 [WARN] [] Client disconnected on attempt 1/2, attempting reconnection...
evolution-go | 2026/07/13 09:19:44 [WARN] [] Client disconnected on attempt 2/2, attempting reconnection...
evolution-go | 2026/07/13 09:19:51 [WARN] [] Client disconnected on attempt 1/2, attempting reconnection...
evolution-go | 2026/07/13 09:20:00 [WARN] [] Client disconnected on attempt 2/2, attempting reconnection...
Note: this loop repeated indefinitely. No log line was emitted when the settings were reset — that is part of the problem.
Additional Notes
Environment
- Evolution GO
0.7.2(Docker imageevoapicloud/evolution-go:0.7.2, pinned tag) - Ubuntu 24.04, Docker Compose
- PostgreSQL 16 (
postgres:16-alpine), named volume, healthy the whole time - RabbitMQ 3.13 (
rabbitmq:3.13-management-alpine), healthy the whole time DATABASE_SAVE_MESSAGES=true,AMQP_URLset and validated on boot- Nginx reverse proxy with TLS
- Single instance running
Both Postgres and RabbitMQ were healthy and had continuous uptime — the database
was never unavailable, so this does not look like a failed read falling back to defaults.
Why this matters
This is being used for a public health research project (medication adherence
reminders). A silent configuration reset means patient responses stop being recorded
with no visible failure. Silent failure is significantly worse than a crash — a crash
can be detected and alerted on.
Suggestions
- Log a WARN/ERROR whenever instance settings are written or reset.
- Never allow a write path to reset
rabbitmqEnable/eventsto defaults implicitly;
only change what was explicitly requested. - Related observation:
PUT /instance/{id}/advanced-settingsalso resets any field
not present in the request body tofalse, instead of leaving it untouched.
A partial update should not clear unrelated fields. This may be the same root cause.
I'm happy to provide more details or test a patch.
Activity
fix(instance): stop Connect/advanced-settings from wiping config
chore(internal): add fork-only e2e suite for evolution-foundation#97/e…
fix(instance): stop Disconnect from wiping event subscriptions
fix(send): fail fast when the instance is not connected