v2rayN Crashes on Startup & v2rayNG Closes Immediately: Runtime, Permissions, and Configuration Fixes

Check .NET Desktop Runtime, folder permissions, and corrupted settings on Windows; check VPN permission and app data on Android. Follow these steps in order to troubleshoot crashes.

At a glance

Use this guide if v2rayN shows no window after you double-click it, displays an error and exits, or v2rayNG closes as soon as it opens. First determine whether the main app is closing or the proxy core is failing to start. Then check the runtime, write permissions, and configuration in that order. Back up data before clearing anything. If the failure occurs only when connecting, check VPN permission and other active VPN services separately.

Tell a crash from a tray app or connection failure

No visible window doesn't always mean the app crashed. v2rayN may be minimized to the notification area, or an existing instance may prevent a second window from opening. Expand the hidden icons on the right side of the Windows taskbar, then press Ctrl + Shift + Esc to open Task Manager. Check the Processes or Details tab for v2rayN.exe. Avoid double-clicking repeatedly: multiple launch attempts can make it harder to tell a real crash from an existing process.

If the client window works and an error appears only when you click Connect, check the proxy core, ports, or configuration instead. v2rayN is a desktop client that relies on a proxy core to handle connections; v2rayNG is an Android client that uses the Xray core. The main app and the core are separate components, so changing subscriptions won't fix a missing desktop runtime.

Check processes Record the error Check the environment Isolate the configuration Restore the connection

Check the v2rayN runtime and architecture

The desktop steps below are for Windows. Runtime requirements vary by v2rayN release package: framework-dependent builds need a compatible .NET runtime, while self-contained builds usually include one. Don't skip checks just because “.NET is installed,” and don't apply Windows dependency fixes to other platforms.

  1. Check your system architecture

    Open Windows Settings → System → About and check System type. Identify whether your device is x64 or ARM64, then make sure the download matches. The runtime architecture must also match the program; the fact that other .NET apps run on your computer isn't enough.

  2. Read the startup prompt

    If a runtime prompt appears, note the Framework, Architecture, and version it names. If the program folder contains v2rayN.runtimeconfig.json, open it in a text editor and check the framework name and version without making changes. Don't edit the version number to work around a missing dependency.

  3. List installed runtimes

    Right-click Start and open Terminal or Windows PowerShell, then run the command below. For a framework-dependent build that uses the WPF interface, check for Microsoft.WindowsDesktop.App. Having only Microsoft.NETCore.App doesn't mean the desktop framework is installed.

  4. Install the matching runtime, then try again

    Install the runtime specified by the release notes or startup prompt, then close any existing process and launch the app again. Restart Windows first if the installer asks you to. No single major runtime version works for every client release package.

dotnet --list-runtimes

If the terminal says dotnet can't be found, that only means the current command environment couldn't find the host; it doesn't prove that a self-contained app can't start. Check the startup prompt and release package type instead. Conversely, command output alone isn't enough: verify that the listed framework and architecture match what the app needs.

You must install or update .NET to run this application.

Cause and fix: The app can't find a compatible .NET runtime. Install the framework, version, and architecture specified in the prompt. Don't confuse the desktop framework with the standard runtime.

Check folder permissions and Windows error logs

The client may need to write configuration, database, and log files at startup. Launching it from inside an archive, storing it in a protected folder, or letting sync software lock its data files can prevent it from starting. Fully extract a portable package to a separate folder your account can write to, such as C:\Users\Public\Documents\v2rayN-test. If your organization restricts that location, use your own Documents folder instead.

System.UnauthorizedAccessException

Cause and fix: The app was denied access to a path or resource. Check access permissions and security software records for the actual path shown in the exception, then test again from a writable folder. This error alone doesn't prove that the installation folder is locked.

The process cannot access the file because it is being used by another process.

Cause and fix: Another process is using a file. Close duplicate client instances and pause sync or backup tasks for the folder before trying again. Don't force-delete data files while the app is running.

If the app starts after temporarily elevating permissions, that points to a permissions difference worth investigating; it doesn't mean the issue is fixed. Verify that the folder is writable from a standard account, and confirm that settings save, the app exits cleanly, and it starts again.

Back up and isolate the configuration without overwriting old data

If the app worked before an update but started crashing afterward, or the error points to configuration parsing or database access, test it in a clean environment. Don't delete the configuration right away: keep the original and see whether the same program opens with fresh data. Configuration paths vary by version, package type, and data-path settings, so don't bulk-delete files based on instructions for a different release.

  1. Close all processes

    Exit v2rayN from the notification area, then use Task Manager to confirm the main process has ended. Stop related processes before backing up or moving data to avoid changes while the database is being written.

  2. Back up the original data

    For a portable setup, first copy the entire original folder. If data is stored separately in your user folder, back that up too. Keep subscription sources, manually added nodes, routing rules, and custom settings. Store backups only in a trusted local location.

  3. Create a test copy

    Fully extract the same release package into a new writable folder without copying the old configuration. If this version uses a shared user data folder, isolate that data too, based on the logs or data-path settings. Changing only the program folder may not be enough.

  4. Restore settings one at a time

    Once the fresh environment opens, close and relaunch it to verify startup. Then add a trusted subscription source, followed by your routing and other settings. Test after restoring each category; don't overwrite the new data folder with the old one.

database disk image is malformed

Cause and fix: This error can occur when an SQLite database is corrupted. Keep the database and related files, then test with an isolated, fresh data environment. Don't delete files beside a database that's in use or repeatedly overwrite your only backup.

If it closes only with the old data, check the configuration first

If the same program opens repeatedly in a clean environment but closes again after you restore a particular setting, focus on that data or a compatibility issue. Reinstalling the runtime is unlikely to help; keeping the smallest configuration that reproduces the problem is more useful.

Fix v2rayNG closing on launch and check VPN permission

On Android, first narrow down the issue by when it occurs. If the app closes before the main screen appears, check app data, the installation package, and system compatibility. If the main screen stays open and the problem starts only when you connect, check VPN permission, other active VPN services, and Xray core logs. A denied VPN permission usually prevents a connection; by itself, it doesn't explain every app launch crash.

  1. Force-stop, then reopen

    Long-press the v2rayNG icon, open App info → Force stop, then launch the app again. You can also find it under Settings → Apps → v2rayNG. Menu names may vary slightly between Android versions.

  2. Clear the cache first

    Go to App info → Storage & cache → Clear cache. Don't tap Clear storage or Clear all data yet: those options have different effects, and clearing all data resets app settings and local configuration.

  3. Check for VPN conflicts

    Search for “VPN” in system settings and check whether another app is running a VPN or is set as an “Always-on VPN.” Stop the other VPN session, return to v2rayNG, tap Connect, and respond to the system's VPN connection request.

  4. Reset only after backing up

    Before clearing app storage, make sure you can retrieve your subscription URLs and manual configuration. If the app opens, export anything you need first. If it won't open and you have no backup, consider the risk of losing data before proceeding; don't uninstall it right away.

  5. Check the package architecture

    When downloading the client again, choose a package that matches your device architecture; if you're unsure, check the download page for a universal package. If Android blocks installation, read the error. A signature mismatch, downgrade restriction, and runtime crash are different problems.

If the window opens, check the core and ports separately

If v2rayN opens normally but the logs show a listener failure, check whether a local port is already in use. 10808 below is only an example of a local proxy port; your configuration may use a different one. Check the port shown by your client, and don't terminate processes you don't recognize.

10808
Example local listening port
127.0.0.1
IPv4 loopback address
1 item
Change one variable at a time
Get-NetTCPConnection -State Listen -LocalPort 10808 |
  Select-Object LocalAddress, LocalPort, OwningProcess

Run the command in PowerShell. The OwningProcess value in the results is a process ID; look it up in the Details tab of Task Manager. No results may mean nothing is listening on that port, so check the client logs too. If another running client instance is causing the conflict, exit it normally and try again. If you change the proxy port, update any app settings that depend on it.

bind: Only one usage of each socket address (protocol/network address/port) is normally permitted.

Cause and fix: A listener address or port is already in use on Windows. Check the address, port, and process named in the error. Close the conflicting app normally or choose an unused port, then restart the core.

If the main window works, keep the configuration for now

If the interface works and only the connection action fails, use the logs to identify a listener, configuration generation, or remote connection issue. Don't clear all app data instead of checking the port. System proxy settings only affect where traffic is sent; they can't fix a startup crash.

Verify the fix and prepare details for support

Don't consider the issue fixed just because the window appeared once. Close and reopen the client to confirm settings save. Then start a connection and check whether the same error appears in the logs. Finally, send a request from an app that needs the proxy. Testing these three stages distinguishes a recovered interface from a working core and a working app proxy.

To set up a basic configuration, see the subscription import guide. If the window is back but connections still fail, see connection troubleshooting. Keep the environment that opens reliably, then restore features one at a time. This makes it easier to identify the cause than changing the program, configuration, and system proxy all at once.

v2rayN Download Center