Docs
Troubleshooting

Common pitfalls

A categorised list of the recurring mistakes that bring people to support.

This is the support-team’s “if it’s broken, look here first” list. If you see your symptom here, follow the link.

Domains and DNS

  • Only the root domain added in the panel, players use a subdomain — every subdomain has to be added separately, or use a wildcard. The wildcard does not cover the apex.
  • Wrong MOTD after an apex→www redirect chain — one of the involved subdomains is missing from the Domains table.
  • Cloudflare orange cloud ON — always wrong for Minecraft. See DNS issues.
  • A record instead of CNAME for the dedicated IP — works until the IP rotates. Always use <uid>.ip.infinity-filter.com as a CNAME.
  • Same CNAME for Java and Bedrock — Bedrock can resolve to another customer’s dedicated IP via shared edge pools. Always separate.
  • CNAME on a wrong region — adds 10–50 ms unnecessarily. Run the Latency Test.

Real-IP forwarding

  • All players show the same IP on the backend — PROXY protocol off (or plugin missing). See Real-IP forwarding.
  • PROXY protocol AND the IF plugin enabled — double-wrap fails. Pick one.
  • Compression-threshold mismatch between Velocity and Spigot — destabilising at high player counts.

Bedrock and Geyser

  • Treating port 19132 as the backend port — players always connect on 19132 to IF; the backend Geyser port is internal and configurable.
  • Geyser backend module holds the old dedicated-IP CNAME after migration — update or Bedrock stays broken even after reactivation.
  • bedrock.enable-proxy-protocol: true with IF upstream — must be false. See Bedrock issues.
  • No SRV for Java via dedicated-IP CNAME — SRV is required if Java goes through <uid>.ip.infinity-filter.com.
  • Restricting Geyser’s allowed-IPs — leave it empty. IF filters upstream.
  • Multi-proxy setup with Geyser on only one proxy — Bedrock players on the other proxy fail. Install on every proxy.

Voice (PlasmoVoice / SimpleVoiceChat)

  • Correct voice_host, but the Docker container doesn’t expose the UDP port — proxy forwards, backend never receives. See Voice issues.
  • Backend port used as the voice module backend in the panel — should be the proxy plugin’s listening port, not the per-Spigot port.

Anti-bot

  • Antibot CPS threshold left at default — trips on mass reconnects after a proxy restart. Raise the threshold in Mitigation.
  • Hardcore antibot selected, no challenge fires — Under Attack mode is off. Enable it.

Backend lifecycle

  • Players can only join one of several backends — usually that one backend’s port is open and others are closed.
  • Changing a backend port without updating every panel entry — connectivity breaks until the related domain or backend entry is re-added.

Billing / subscription

  • Bedrock/voice suddenly broken after a subscription renewal — billing flagged the dedicated IP for cancellation. Open a ticket to re-enable.
  • Trying to pay an invoice as a sub-user — only the network owner can pay. The owner needs to log in.

Common one-line fixes — cheatsheet

Cloudflare orange cloud → DNS only

Switch the record to grey cloud.

A record → CNAME

Replace the hardcoded IP with the IF CNAME.

PROXY protocol on both sides OR plugin only

Enable in panel + Velocity, never both.

Raise antibot CPS threshold

Move it above your normal peak CPS.

Map Docker UDP voice port

Add `24454:24454/udp` (or PlasmoVoice 60606) to docker-compose.

Set bedrock.enable-proxy-protocol false

IF doesn't need this — it's for an upstream UDP reverse proxy.

Add every subdomain in the panel

Or use a wildcard. The apex still has to be added separately.

Install Geyser on every proxy

In multi-proxy setups, no exceptions.

Use the proxy plugin's port for voice modules

Not the per-Spigot voice port.

Match compression-threshold

Identical on Velocity and Spigot.

What’s next

Last updated: May 28, 2026