Decision trees
Find the failing layer first.
Separate device/app, subscription/HWID, provider routing, Remnawave integration and NODIF platform symptoms before changing anything.
Five-minute triage
- Is internet access working without the VPN? Complete captive portals and stabilize the base network first.
- Is another VPN active? Disconnect it; do not run two system tunnels during diagnosis.
- Does subscription refresh work? If no, diagnose provider/Remnawave/HWID before the tunnel.
- Can one known-good route connect manually? If yes, diagnose Smart Route candidates/quality. If no, diagnose the tunnel/provider route.
- Is the symptom user-only, network cohort, app release or provider-wide? Use only qualified aggregate evidence.
- Was there a recent change? Pause it and compare with the last known good state.
Subscription will not import or refresh
| Check | If it fails |
|---|---|
| URL opens only when authorized and is not expired/disabled/limited. | Provider owns renewal/account state. Never ask the user to paste the URL. |
| Device date/time and HTTPS validation are correct. | Enable automatic time; inspect provider TLS/DNS without bypassing certificate validation. |
| NODIF request matches the narrow Remnawave rule. | Check User-Agent match, order, enabled flag, response type and intended fallback. |
| User belongs to the intended External Squad. | Correct squad assignment; do not move broad production groups during diagnosis. |
| HWID accepted and below device limit. | Use provider-side device workflow; never request raw HWID. |
| Subscription contains compatible routes. | Check provider configuration/body generation; avoid sharing raw config with NODIF. |
Wrong, missing or stale provider branding
- Confirm exactly one
X-NODIF-Provider-IDand oneX-NODIF-Branding-Tokenreach the client. - Confirm the ID is the public slug, not the tenant UUID.
- Check for legacy
X-UMMA-*aliases or differently cased duplicates. - Verify the token belongs to the same provider and has not been revoked.
- Check active Brand entitlement and approved production profile.
- Confirm device time; signed profiles expire and are rejected when invalid.
- Check that logo/link validation passes. A rejected asset should fall back safely rather than break the entire app.
- If a provider attempted self-service profile/logo PUT, expect
409 branding_review_required; submit through NODIF moderation while the current approved profile stays live.
Analytics is empty
- Call
GET /v1/provider/sessionand checkanalytics_read,analytics_entitled, subscription state and policy. - Confirm users separately opted in. VPN functionality does not depend on consent.
- Wait for devices that were offline to reconnect and upload their encrypted queue.
- Try the overview for a seven-day window before a narrow hourly/city view.
- Remember each bucket/row independently needs the dynamic minimum install count.
- Check coverage: context or catalog dimensions can remain unknown/empty even when overview metrics exist.
- Keep query within raw retention, with RFC 3339 UTC timestamps and
from < to.
Do not lower the privacy threshold, query overlapping slices to infer a group, or treat suppression as missing telemetry.
Provider portal/API errors
| Symptom | Likely cause | Action |
|---|---|---|
401 unauthorized | Wrong prefix, revoked key, inactive provider or malformed Authorization header. | Stop retries; use verified replacement/recovery. |
403 insufficient_scope | Key lacks endpoint scope. | Use a narrower correct key; do not share owner key. |
403 not_entitled | Plan/subscription feature inactive. | Check session/subscription; this is not an API outage. |
| 409 self-revoke | Active key attempted to revoke itself. | Create and verify another owner key first. |
| 409 branding review | Production profile/logo requires moderation. | Use approved review path; current live profile is preserved. |
| 429 | More than the keyed API limit. | Honor Retry-After 60; reduce refresh/polling and add jitter. |
| 500/503 | NODIF service/dependency problem. | Record request ID/time, check readiness, bounded backoff, escalate. |
The updated portal displays the safe error code and request ID. Copy the incident reference, never the key or response body containing one-time credentials.
Windows tunnel failures
“Adapter did not become ready”
- Disconnect other VPNs and stop conflicting virtual-network/filter software.
- Verify supported Windows architecture and current NODIF build.
- Check the expected tunnel adapter is present/enabled.
- Retry with required service/admin privileges if policy permits.
- Reboot after driver/network-stack updates.
- Escalate the coded stage/time if repeatable.
“Could not configure the TUN interface address”
- Check for duplicate/static route or address conflicts.
- Confirm endpoint security/firewall did not block interface configuration.
- Do not randomly delete all network adapters or use a full network reset first.
- Test a clean controlled Windows profile/device to isolate local corruption versus app/provider behavior.
“Tunnel did not finish starting in time”
- Separate route-probe success from tunnel startup; a reachable server can still fail tunnel establishment.
- Check provider route/protocol, system adapter readiness and security software.
- Avoid repeated “Optimize route” clicks while a connection attempt is active.
- Capture coded startup stage, not a raw process dump containing arguments/configuration.
Android connection drops or permission failures
- Confirm Android’s VPN permission was accepted and another always-on/lockdown VPN is not owning the tunnel.
- Complete captive portal login before connecting.
- Allow background operation and review aggressive battery restrictions if the OS kills NODIF.
- Test Wi‑Fi and mobile separately; allow recovery after a handoff.
- Check provider subscription/HWID state after app reinstall or device change.
- If sideloaded, verify the official APK hash and update only from NODIF.
Connection is slow or unstable
- Measure the base network without VPN and note network type/time—do not expect the VPN to exceed a congested link.
- Run Check routes first. Use Speed test intentionally because it consumes data and can interrupt.
- Compare latency, jitter, loss, throughput and handshake together; do not choose by ping alone.
- Test one manual route to distinguish Smart Route ranking from provider path quality.
- Look for a qualifying network/platform/protocol cohort rather than assuming one user represents a city/ISP.
- Check provider capacity and recent routing/balancer changes.
- Avoid route flapping: switching too often can be worse than a slightly slower stable route.
HWID failures
| State | Provider action | User guidance |
|---|---|---|
| Not supported | Verify enabled squad/client compatibility and current app version. | Update NODIF; do not share HWID. |
| Maximum devices | Apply documented device removal/reset policy. | Remove an old device in provider account or contact provider support. |
| Unexpected duplicate | Inspect provider device records and reinstall/migration behavior. | Do not repeatedly reinstall while support investigates. |
| 404 response | Check Remnawave HWID logs/state; it may intentionally obscure failure. | Report time/app/platform, not subscription URL. |
Escalate safely
Include impact, UTC start/last-good, app version/build, platform/OS major/architecture, network type, stable error code/stage, API request ID, redacted recent change, canary/rollback result and reproduction steps. Exclude all subscription URLs/tokens, provider/admin/branding keys, HWIDs, raw configurations, host/domain/IP lists, packet captures, browsing and DNS history.
