Help
Start with the state the app is showing you — it has already done the diagnosis. If that is not enough, write to us; a person reads these.
Guides by topic
Step-by-step articles, written against what ships today.
Install and set up
- Install and connect for the first time
- Installing ForestVPN and connecting for the first time, on each platform it actually ships on today, with the steps specific to each.
- ForestVPN on a MikroTik with a flash folder
- Install the ForestVPN container on a hAP ac² or another 16 MB MikroTik board so its key survives a reboot and the image is pulled again at boot.
- Install ForestVPN on OpenWrt
- Install ForestVPN on an OpenWrt router with the install file (.ipk) for OpenWrt 24.10 and older, or the one command for 25.12 and newer once listed.
- First run on an OpenWrt router
- Set the router's password, link it to your account by a code or the account number, choose who is protected and a location, then turn protection on.
- Install ForestVPN on OpenWrt without fvpn.net
- Get ForestVPN onto an OpenWrt router when fvpn.net does not load, from the S3 mirror or an offline bundle once the install page lists it.
- Could not create the network adapter
- Could not create the network adapter: what the ForestVPN message ne.adapter_create_failed means, why it appears and what to do about it.
- The ForestVPN service is not running
- The ForestVPN service is not running: what the ForestVPN message ne.service_unavailable means, why it appears and what to do about it.
- This router cannot run ForestVPN
- This router cannot run ForestVPN: what the ForestVPN message ne.host_unsupported means, why it appears and what to do about it.
- Use ForestVPN from an active desktop session
- Use ForestVPN from an active desktop session: what the ForestVPN message ne.permission_denied means, why it appears and what to do about it.
Connection status
- Troubleshooting connection problems
- What to do about the specific things that actually go wrong, beyond the eight connection states, before a state even shows.
- Already connected elsewhere
- Already connected elsewhere: what the ForestVPN message cp.ticket_in_use means, why it appears and what to do about it.
- Cannot reach ForestVPN
- Cannot reach ForestVPN: what the ForestVPN message cp.unreachable means, why it appears and what to do about it.
- Chat is unavailable right now
- Chat is unavailable right now: what the ForestVPN message cp.ask_disabled means, why it appears and what to do about it.
- Connected, but nothing is getting through
- Connected, but nothing is getting through: what the ForestVPN message net.liveness_failed means, why it appears and what to do about it.
- Connected, then nothing is carried
- Connected, then nothing is carried: what the ForestVPN message net.blocked_after_handshake means, why it appears and what to do about it.
- Connection is slow or unreliable
- Connection is slow or unreliable: what the ForestVPN message net.degraded means, why it appears and what to do about it.
- Could not configure the tunnel
- Could not configure the tunnel: what the ForestVPN message ne.settings_rejected means, why it appears and what to do about it.
- Could not start the tunnel: no system tunnel
- Could not start the tunnel: no system tunnel: what the ForestVPN message ne.no_tun_fd means, why it appears and what to do about it.
- Could not start the tunnel: the core refused
- Could not start the tunnel: the core refused: what the ForestVPN message ne.quantum_start means, why it appears and what to do about it.
- Name lookup is being blocked
- Name lookup is being blocked: what the ForestVPN message cp.dns_blocked means, why it appears and what to do about it.
- No network connection on this device
- No network connection on this device: what the ForestVPN message net.underlay_down means, why it appears and what to do about it.
- Not authorized: request refused
- Not authorized: request refused: what the ForestVPN message cp.unauthorized means, why it appears and what to do about it.
- Protected, ending soon
- Protected, ending soon: what the ForestVPN message ne.session_ends_soon means, why it appears and what to do about it.
- Reconnecting after a session refresh
- Reconnecting after a session refresh: what the ForestVPN message ne.renew_gap means, why it appears and what to do about it.
- Session credential rejected
- Session credential rejected: what the ForestVPN message cp.ticket_invalid means, why it appears and what to do about it.
- Session ended by the server
- Session ended by the server: what the ForestVPN message session.revoked means, why it appears and what to do about it.
- Session expired: connect again
- Session expired: connect again: what the ForestVPN message cp.ticket_expired means, why it appears and what to do about it.
- Small packets pass, large ones do not
- Small packets pass, large ones do not: what the ForestVPN message net.mtu_blackhole means, why it appears and what to do about it.
- Something went wrong (bad request)
- Something went wrong (bad request): what the ForestVPN message cp.bad_request means, why it appears and what to do about it.
- Something went wrong at our end
- Something went wrong at our end: what the ForestVPN message cp.internal means, why it appears and what to do about it.
- The server cannot reach the internet
- The server cannot reach the internet: what the ForestVPN message net.exit_unreachable means, why it appears and what to do about it.
- The server did not confirm
- The server did not confirm: what the ForestVPN message cp.install_not_acked means, why it appears and what to do about it.
- The server is not answering connection attempts
- The server is not answering connection attempts: what the ForestVPN message net.blocked_at_handshake means, why it appears and what to do about it.
- This location is busy or under maintenance
- This location is busy or under maintenance: what the ForestVPN message cp.node_unavailable means, why it appears and what to do about it.
- This location is not available right now
- This location is not available right now: what the ForestVPN message cp.no_candidate means, why it appears and what to do about it.
- This network is blocking ForestVPN
- This network is blocking ForestVPN: what the ForestVPN message cp.access_blocked means, why it appears and what to do about it.
- Too many requests, wait a minute
- Too many requests, wait a minute: what the ForestVPN message cp.rate_limited means, why it appears and what to do about it.
- Waiting for the device to unlock
- Waiting for the device to unlock: what the ForestVPN message ne.machine_key_locked means, why it appears and what to do about it.
- Your network appears to be blocking VPNs
- Your network appears to be blocking VPNs: what the ForestVPN message net.interference means, why it appears and what to do about it.
Account and account number
- The account number
- What the account number is for, why there is no password behind it, what it replaces, and what happens if you lose it.
- Devices and linking
- Using one subscription on more than one device, pairing a device with no keyboard, and how to sign a device out or remove it.
- Lost your account number
- What to try if you no longer have the 32-character number, and what we can and cannot do about it. We cannot reset it.
- Delete your account
- How to delete a ForestVPN account in the app or the console, what it removes, and what it leaves for you to cancel.
- A router cannot do that
- A router cannot do that: what the ForestVPN message cp.router_limited means, why it appears and what to do about it.
- Confirm you are the account owner
- Confirm you are the account owner: what the ForestVPN message ne.reauth_required means, why it appears and what to do about it.
- Registering this device again
- Registering this device again: what the ForestVPN message cp.device_unknown means, why it appears and what to do about it.
- The accounts could not be merged
- The accounts could not be merged: what the ForestVPN message cp.merge_refused means, why it appears and what to do about it.
- This device is already linked
- This device is already linked: what the ForestVPN message cp.already_linked means, why it appears and what to do about it.
- This device is suspended
- This device is suspended: what the ForestVPN message cp.suspended means, why it appears and what to do about it.
- This device was removed recently
- This device was removed recently: what the ForestVPN message cp.link_cooldown means, why it appears and what to do about it.
- Too many devices joined recently
- Too many devices joined recently: what the ForestVPN message cp.seat_changes_limited means, why it appears and what to do about it.
- We do not recognise that number
- We do not recognise that number: what the ForestVPN message cp.account_unknown means, why it appears and what to do about it.
- Welcome back: device recognised
- Welcome back: device recognised: what the ForestVPN message cp.device_exists means, why it appears and what to do about it.
- Your account has the most devices it allows
- Your account has the most devices it allows: what the ForestVPN message cp.seat_limit means, why it appears and what to do about it.
Plans, payments and restore
- The data allowance
- What the free tier's 2 GB per connection, five connections a day and 5 GB a day actually mean, and what a subscription changes.
- Restore your Premium
- Getting a subscription you already bought in the App Store or Google Play back onto this device, without paying again.
- Use your subscription on another device
- A new phone or a second device, and which route works for a store purchase and which for a web purchase, step by step.
- Find your Apple order ID
- Where to find the order ID of an App Store purchase, when support may ask for it, and why you should keep it to yourself.
- A payment was reversed
- A payment was reversed: what the ForestVPN message session.billing_chargeback means, why it appears and what to do about it.
- Daily connection limit reached
- Daily connection limit reached: what the ForestVPN message cp.quota_exceeded means, why it appears and what to do about it.
- Data allowance used up
- Data allowance used up: what the ForestVPN message cp.data_cap_reached means, why it appears and what to do about it.
- Purchases are paused
- Purchases are paused: what the ForestVPN message cp.rail_disabled means, why it appears and what to do about it.
- That purchase belongs to another account
- That purchase belongs to another account: what the ForestVPN message cp.subscription_owned means, why it appears and what to do about it.
- This location needs a paid plan
- This location needs a paid plan: what the ForestVPN message cp.tier_required means, why it appears and what to do about it.
- This session used its whole allowance
- This session used its whole allowance: what the ForestVPN message session.quota_exceeded means, why it appears and what to do about it.
- Your connection allowance is almost used
- Your connection allowance is almost used: what the ForestVPN message session.budget_low means, why it appears and what to do about it.
- Your plan changed while connecting
- Your plan changed while connecting: what the ForestVPN message cp.tier_mismatch means, why it appears and what to do about it.
Routing
- MikroTik router setup
- Running ForestVPN as a first-class device on a MikroTik router — what it is, and how it fits into your account.
- Choosing what goes through the tunnel
- Optional RouterOS recipes for a ForestVPN router — send one group of apps, send everything, and stop traffic leaking when the tunnel is down.
- Whole home or chosen devices on OpenWrt
- Choose which devices behind your OpenWrt router use ForestVPN, keep a game console or work laptop on Direct, and handle phones whose Wi-Fi address changes.
- ForestVPN beside passwall2, podkop, pbr, mwan3
- How ForestVPN shares an OpenWrt router with passwall2, podkop, pbr, mwan3, AdGuard Home and Tailscale, which numbers it uses, and how to move them.
Kill switch
- MikroTik kill switch and leak check
- Make selected LAN traffic stop instead of falling back to your normal connection when the ForestVPN container is down, then prove it with a test.
- OpenWrt kill switch, DNS and IPv6
- What the ForestVPN kill switch on OpenWrt blocks and when it lets devices go direct, how DNS and IPv6 are handled, and how to run a leak test yourself.
- The kill switch could not be armed
- The kill switch could not be armed: what the ForestVPN message ne.wfp_init_failed means, why it appears and what to do about it.
Updates
- Update the ForestVPN container on MikroTik
- Move a MikroTik ForestVPN container to a newer pinned image without losing its identity or its account link, and roll back the same way.
- Updates, upgrades and uninstall on OpenWrt
- Update ForestVPN on an OpenWrt router, what a firmware upgrade removes and keeps, how to take ForestVPN off, and what to do if a backup file got out.
- Out of date: update the app
- Out of date: update the app: what the ForestVPN message cp.epoch_unknown means, why it appears and what to do about it.
- Update required: this version is too old
- Update required: this version is too old: what the ForestVPN message cp.client_too_old means, why it appears and what to do about it.
Privacy
- What you trust on OpenWrt, and what it cannot do
- Who you trust when ForestVPN updates on an OpenWrt router, why to use https on shared networks, and the honest limits of ForestVPN on a router.
- Could not verify the server list
- Could not verify the server list: what the ForestVPN message cp.catalog_unsigned means, why it appears and what to do about it.
- Insecure connection refused
- Insecure connection refused: what the ForestVPN message cp.https_required means, why it appears and what to do about it.
Sharing
- A shared exit is no longer shared with you
- A shared exit is no longer shared with you: what the ForestVPN message session.share_ended means, why it appears and what to do about it.
- That invite is not valid
- That invite is not valid: what the ForestVPN message cp.invite_invalid means, why it appears and what to do about it.
- This device cannot share an exit yet
- This device cannot share an exit yet: what the ForestVPN message cp.share_refused means, why it appears and what to do about it.
- This exit has as many guests as it can
- This exit has as many guests as it can: what the ForestVPN message cp.share_limit means, why it appears and what to do about it.
Backup route
- Backup route used up
- Backup route used up: what the ForestVPN message cp.cdn_allowance_exhausted means, why it appears and what to do about it.
Exits
- Exit paused: it needs Wi-Fi or Ethernet
- Exit paused: it needs Wi-Fi or Ethernet: what the ForestVPN message ne.no_wired_or_wifi means, why it appears and what to do about it.
- You have as many exits as your plan allows
- You have as many exits as your plan allows: what the ForestVPN message cp.exit_limit means, why it appears and what to do about it.
- Your exit is offline
- Your exit is offline: what the ForestVPN message cp.exit_offline means, why it appears and what to do about it.
Your devices together
- Waiting for a free device slot
- Waiting for a free device slot: what the ForestVPN message cp.member_pending means, why it appears and what to do about it.
Contact us
Email support@fvpn.net, or chat with our assistant — ask in any language.
Include a support code. In the app, open Account → Get help. It shows a short code that is valid for 72 hours and is the only way we can find your device’s record — we have no email address, no username and no account name to search for. Without it we can still answer questions; we cannot look anything up.
Do not send us your account number. It is a credential, not an identifier: anyone holding it can attach a device to your subscription.
Getting connected
Install the app, read the four data-use panels, allow the VPN configuration when iOS or macOS asks, and press connect. There is no account to create, no email to confirm and no card to enter. On a Mac you may also have to approve the system extension in System Settings; the app says so when that approval is still outstanding.
On Apple TV, choose Pair and type the short code shown on the TV into the app on your iPhone or iPad. You never type a password with the remote, because there is no password.
When it will not connect
The app does not say “connection failed”. It names one of eight states, the layer the fault was observed at and how strong the evidence is. Read that first — it usually tells you whether the problem is ours or the network you are on.
| State | What it means and what to try |
|---|---|
| Working | Data is flowing both ways. Nothing to do. |
| Idle | Nothing to send right now. The tunnel is up and no app is using the network — the state most often misreported as a fault. Nothing to do. This is what a phone in a pocket looks like. |
| Degraded | Carrying traffic, measurably worse than it should be. Usually the network you are on. Try another location, or a different Wi-Fi or cellular connection. |
| BlockedAtHandshake | Initiations are going out and the far end is not answering. Try another location. If every location does this on one network and none of them do on another, the network is the difference. |
| BlockedAfterHandshake | The session established and then carried nothing. A packet-size problem causes this more often than blocking. Try a different network, then another location. |
| MtuBlackhole | Large packets are dropped while small ones pass — the benign cause of the state above, and far more common. Use a different network. Switching location will not help. |
| ExitUnreachable | The path to the exit works and the exit cannot reach the internet. The exit says so itself, in a ledger that reached us over the path in question. Our side. Pick another location, and tell us which one failed and when. |
| UnderlayDown | The local network is down. Nothing can be concluded about anything further out. Your network is down. Nothing further out can be tested until it comes back. |
If the state is Unknown, the app is telling you it does not have evidence to name a layer. That is deliberate — it will not guess and move you to a different exit for a problem on your own network.
For specific situations beyond the eight states — a Mac stuck on a system extension, an expired pairing code, a drop on sleep — see the full troubleshooting guide.
Free tier
The free tier gives you 2 GB per connection, five connections a day and up to ten devices. When a connection reaches its 2 GB the tunnel closes; connect again to start a new one. When you have used the day’s five connections the app says so and stops issuing them until the next day.
A subscription removes the per-connection limit and the daily connection count, and opens the locations that need a paid tier.
More on the data allowance — what counts against the 2 GB and what a device is.
Subscriptions and billing
A subscription bought in the App Store is sold, billed, renewed, cancelled and refunded by Apple, one bought in Google Play by Google, and one bought on the web by the card or crypto processor you chose. We cannot charge you, refund you or cancel a store subscription on your behalf — we do not have your payment details, and there is no billing record on our side beyond the store’s signed receipt or a one-time web reference.
- Manage or cancel your subscription in your Apple Account, under Subscriptions in the Google Play Store, or, for a card purchase on the web, in your console.
- Request a refund from Apple or Google Play. A card purchase on the web can be refunded through support; a crypto purchase cannot.
Cancelling returns you to the free tier at the end of the paid period. Nothing is deleted and nothing locks you out. The three-day free trial is offered on the yearly rung in the App Store only, and Apple decides who is eligible for it.
Using a subscription on your other devices
In the app, open Account and create an account number: 32 hex characters, no email and no password. Enter it on your other device to attach it to the same subscription.
A device you just linked can't remove an older one for its first 7 days on the account. That stops a device that has only just joined — a thief, or a shared or resold number — from signing everyone else out. Once a device has been on the account for 7 days, or by typing the account number itself, you can remove any device or simply sign out; neither is a route we have to reverse by hand. If a device is lost before it reaches 7 days, write to us with a support code.
The account number is shown once. If you lose it and no device is still attached, we cannot recover it, because we have nothing else that identifies you. A subscription bought on a device that was already linked moves onto the account rather than sitting unreachable there, and if you end up paying for Premium twice, the app points out which one to keep and lets you stop the other from renewing.
Read more in the account number and devices and linking.
Your data
The short version: there is no field anywhere for the sites you visit, the names you look up or the addresses you connect to. The privacy policy lists everything that does exist, how long it is kept, and what a deletion request can and cannot reach today — including the parts that are uncomfortable.
If you want data removed, email us with a support code. Read what a request can reach first, so the answer is not a surprise.
Reporting abuse
If traffic from one of our exit addresses is causing you a problem, write to abuse@fvpn.net with the address, the timestamps and the time zone. We do not keep a record that connects an exit address to a subscriber, so we cannot tell you who it was; we can act on the exit.