Skip to content

[BUG] QR pairing hangs when proxy is enabled #12

@TBDevMaster

Description

@TBDevMaster

Welcome!

  • Yes, I have searched for similar issues on GitHub and found none.

What did you do?

I tested WhatsApp pairing with the same proxy in two different stacks:

  1. Older Evolution API
  • configured the same NodeMaven HTTP proxy
  • restarted the instance
  • QR code was returned successfully
  1. Evolution Go
  • created a new instance with the same proxy payload:
    • host
    • port
    • username
    • password
  • called connect successfully
  • then called QR retrieval
  • QR request hung / timed out

I also inspected the Evolution Go source and found that:

  • documentation describes the per-instance proxy as HTTP
  • but the runtime bootstrap uses CreateSocks5Proxy(...) and SetSOCKSProxy(...)

So I reproduced the issue both at API level and by reading the current source code.

What did you expect?

I expected Evolution Go to generate the QR code successfully when a proxy is configured, just like the older Evolution API does with the same proxy.

Since the documentation describes the instance proxy as HTTP proxy configuration, I expected the runtime to either:

  • support HTTP proxy correctly for pairing, or
  • clearly document that only SOCKS5 is supported.

At minimum, I expected proxy-enabled QR pairing not to hang indefinitely.

What did you observe instead of what you expected?

Evolution Go creates the instance successfully and connect also returns success, but QR generation hangs and eventually times out.

The instance log stops after:

  • Starting websocket connection to Whatsapp
  • No jid found. Creating new device
  • Setting whatsapp version from web to ...
  • Proxy enabled

No QR is returned after that.

With the same exact proxy, the older Evolution API returns QR normally, so the issue appears to be specific to Evolution Go.

Screenshots/Videos

No response

Which version are you using?

I am using the official Docker image evoapicloud/evolution-go:latest, tested on April 4, 2026.

I do not currently have the exact semantic version string shown by the runtime/UI, but this issue was reproduced against the current latest image available on that date.

What is your environment?

Other

If applicable, paste the log output

{"timestamp":"2026-04-04T23:15:03.993123602-03:00","level":"INFO","instance_id":"59f34445-f999-467b-b6e6-f05fe0d77916","message":"[59f34445-f999-467b-b6e6-f05fe0d77916] Processing subscribe events: []"}
{"timestamp":"2026-04-04T23:15:03.994945482-03:00","level":"INFO","instance_id":"59f34445-f999-467b-b6e6-f05fe0d77916","message":"[59f34445-f999-467b-b6e6-f05fe0d77916] Updating instance settings in runtime"}
{"timestamp":"2026-04-04T23:15:03.995627806-03:00","level":"WARN","instance_id":"59f34445-f999-467b-b6e6-f05fe0d77916","message":"[59f34445-f999-467b-b6e6-f05fe0d77916] MyClient not found in runtime, instance may not be connected"}
{"timestamp":"2026-04-04T23:15:03.995752394-03:00","level":"INFO","instance_id":"59f34445-f999-467b-b6e6-f05fe0d77916","message":"[59f34445-f999-467b-b6e6-f05fe0d77916] Instance not in runtime yet, will be updated when connected"}
{"timestamp":"2026-04-04T23:15:03.995868179-03:00","level":"INFO","instance_id":"59f34445-f999-467b-b6e6-f05fe0d77916","message":"[59f34445-f999-467b-b6e6-f05fe0d77916] Starting new client instance"}
{"timestamp":"2026-04-04T23:15:04.000313983-03:00","level":"INFO","instance_id":"59f34445-f999-467b-b6e6-f05fe0d77916","message":"Starting websocket connection to Whatsapp for user '59f34445-f999-467b-b6e6-f05fe0d77916'"}
{"timestamp":"2026-04-04T23:15:04.015168724-03:00","level":"WARN","instance_id":"59f34445-f999-467b-b6e6-f05fe0d77916","message":"[59f34445-f999-467b-b6e6-f05fe0d77916] No jid found. Creating new device"}
{"timestamp":"2026-04-04T23:15:04.179070285-03:00","level":"INFO","instance_id":"59f34445-f999-467b-b6e6-f05fe0d77916","message":"[59f34445-f999-467b-b6e6-f05fe0d77916] Setting whatsapp version from web to 2.3000.1036687490"}
{"timestamp":"2026-04-04T23:15:04.179452894-03:00","level":"INFO","instance_id":"59f34445-f999-467b-b6e6-f05fe0d77916","message":"[59f34445-f999-467b-b6e6-f05fe0d77916] Proxy enabled"}

Additional Notes

Additional context and why I believe this is an Evolution Go-specific issue:

  1. A/B comparison with the same proxy
  • Older Evolution API using the same exact NodeMaven HTTP proxy returns QR normally.
  • Evolution Go using the same exact proxy:
    • create = success
    • connect = success
    • qr = hangs / times out
  1. Source code mismatch found in this repository
  • Documentation says the instance proxy endpoint configures an HTTP proxy.
  • However, the runtime bootstrap uses:
    • CreateSocks5Proxy(...)
    • SetSOCKSProxy(...)
  • ProxyConfig does not expose a protocol field, only:
    • host
    • port
    • username
    • password
  1. Why this looks suspicious
  • The payload and docs suggest HTTP proxy support.
  • The runtime appears to force SOCKS5 behavior.
  • This may explain why proxy-enabled pairing hangs after "Proxy enabled" with no QR generated.

If needed, I can provide the exact curl commands used for:

  • instance/create
  • instance/connect
  • instance/qr

I can also provide the exact code references where this mismatch appears.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions