Skip to content

WARP instability on ARM64 servers resolved after replacing wgcf and regenerating the profile #5508

Description

@behifyn

Description

When WARP is enabled in Hiddify Manager, some proxy configurations become unstable and repeatedly disconnect and reconnect.

In some cases, the configurations stop responding to ping entirely.

Disabling WARP from the Hiddify Manager settings and applying the configuration appears to resolve the connectivity issue immediately.

On an ARM64 server, replacing the existing wgcf binary with the ARM64 build of wgcf v2.2.31, removing the old account/profile files, and generating a new WARP profile resolved the issue.

Symptoms

  • Proxy configurations randomly disconnect and reconnect.
  • Some configurations occasionally stop responding to ping.
  • Connectivity becomes stable after disabling WARP.
  • The issue returns when WARP is enabled with the existing wgcf installation.
  • Replacing wgcf and regenerating the WARP profile resolves the issue.

Steps to confirm the issue

  1. Disable WARP from the Hiddify Manager settings.
  2. Apply the configuration through SSH:
bash /opt/hiddify-manager/apply_configs.sh
  1. Check the configurations again.

If connectivity becomes stable after disabling WARP, the issue is likely related to the existing WARP or wgcf installation.

Workaround

Before performing these steps, users should create a backup of the Hiddify Manager panel and its settings.

Open the WARP WireGuard directory:

cd /opt/hiddify-manager/other/warp/wireguard/

Check the server architecture:

uname -m

Possible architecture mappings:

  • x86_64 → AMD64
  • aarch64 or arm64 → ARM64
  • armv7l → ARMv7

Remove the existing wgcf binary:

rm -f wgcf

Download the correct wgcf v2.2.31 binary for the server architecture.

AMD64 / x86_64

wget https://github.com/ViRb3/wgcf/releases/download/v2.2.31/wgcf_2.2.31_linux_amd64 -O wgcf

ARM64 / aarch64

wget https://github.com/ViRb3/wgcf/releases/download/v2.2.31/wgcf_2.2.31_linux_arm64 -O wgcf

ARMv7 / armv7l

wget https://github.com/ViRb3/wgcf/releases/download/v2.2.31/wgcf_2.2.31_linux_armv7 -O wgcf

Make the downloaded binary executable:

chmod +x wgcf

Remove the previous wgcf account and profile files:

rm -f wgcf-account.toml wgcf-profile.conf

Register a new WARP account:

./wgcf register

Accept the terms by pressing Enter or entering Y.

Generate a new WireGuard profile:

./wgcf generate

After generating the profile, disable WARP from the Hiddify Manager settings and apply the configuration:

bash /opt/hiddify-manager/apply_configs.sh

Then enable WARP again and apply the configuration once more:

bash /opt/hiddify-manager/apply_configs.sh

After completing these steps, WARP and the proxy configurations become stable again.

Registration rate-limit issue

During registration, wgcf may return the following error:

Too many requests

When this happens, registration can be completed on a Windows computer or through another network.

Download the Windows build:

https://github.com/ViRb3/wgcf/releases/download/v2.2.31/wgcf_2.2.31_windows_386.exe

Open a terminal in the directory containing the downloaded file and run:

.\wgcf_2.2.31_windows_386.exe register

After accepting the terms, the program creates this file:

wgcf-account.toml

Copy the complete contents of that file.

On the server, open the account file inside the WARP WireGuard directory:

cd /opt/hiddify-manager/other/warp/wireguard/
nano wgcf-account.toml

Paste the copied content and save the file.

Then generate the profile:

./wgcf generate

Automatic update issue

Hiddify Manager's automatic update process may replace the manually installed wgcf binary.

Currently, users may need to disable automatic updates to prevent the working ARM64 binary or the updated wgcf version from being overwritten.

This is not an ideal long-term solution because disabling automatic updates also prevents users from receiving other Hiddify Manager fixes and improvements.

Expected behavior

Hiddify Manager should:

  1. Detect the server architecture automatically.
  2. Download the correct architecture-specific wgcf binary.
  3. Avoid installing an AMD64 binary on ARM64 servers.
  4. Check the currently installed wgcf binary before replacing it.
  5. Avoid overwriting a newer or manually installed compatible binary.
  6. Keep WARP stable after applying configuration updates.
  7. Show a clearer error or recovery instruction when WARP registration is rate-limited.
  8. Preserve a working wgcf installation during automatic Hiddify Manager updates.

Suggested implementation

The WARP installation and update scripts could detect the architecture using:

uname -m

or:

dpkg --print-architecture

The detected value could then be mapped to the correct release asset:

x86_64          → linux_amd64
amd64           → linux_amd64
aarch64         → linux_arm64
arm64           → linux_arm64
armv7l          → linux_armv7
armhf           → linux_armv7

It may also be useful to verify the downloaded binary before executing it, for example by running:

./wgcf --help

Environment

Hostname: Behify-Hi
Operating system: Ubuntu
Kernel: Linux 6.8.0-136-generic
Kernel build: #136-Ubuntu SMP PREEMPT_DYNAMIC Wed Jul 1 21:33:11 UTC 2026
Architecture: aarch64 / ARM64
wgcf replacement version: v2.2.31

Output of uname -a:

Linux Behify-Hi 6.8.0-136-generic #136-Ubuntu SMP PREEMPT_DYNAMIC Wed Jul 1 21:33:11 UTC 2026 aarch64 aarch64 aarch64 GNU/Linux

Output of uname -m:

aarch64

The installed wgcf binary does not support the --version flag.

Command:

/opt/hiddify-manager/other/warp/wireguard/wgcf --version

Output:

Error: unknown flag: --version

Usage:
  wgcf [flags]
  wgcf [command]

Available Commands:
  completion  Generate the autocompletion script for the specified shell
  generate    Generates a WireGuard profile from the current Cloudflare Warp account
  help        Help about any command
  register    Registers a new Cloudflare Warp device and creates a new account, preparing it for connection
  status      Prints the status of the current Cloudflare Warp device
  trace       Prints trace information about the current internet connection
  update      Updates the current Cloudflare Warp account, preparing it for connection

Flags:
      --config string   Configuration file (default "wgcf-account.toml")
  -h, --help            help for wgcf

Use "wgcf [command] --help" for more information about a command.

unknown flag: --version

Additional note

The exact root cause has not yet been confirmed.

However, the following behavior is reproducible:

  1. WARP enabled with the existing installation causes unstable connectivity.
  2. Disabling WARP restores stable connectivity.
  3. Replacing wgcf with the correct ARM64 binary and regenerating the profile resolves the issue.

This suggests that the problem may be related to an outdated, incompatible, corrupted, or incorrectly selected wgcf binary, or to an invalid previously generated WARP profile.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions