Fix v2rayN Startup Crashes: .NET Runtime, Antivirus Blocks, and Folder Permissions

If v2rayN closes immediately after launch, the cause is often a missing .NET Desktop Runtime, quarantined core files, or insufficient folder permissions. Follow these steps to diagnose it.

At a glance

First determine whether the main app is exiting or the proxy core is failing to start. Then check the runtime, quarantine history, and write permissions. This guide covers v2rayN on Windows desktop and applies if nothing appears after a double-click, the window flashes and disappears, or the interface stays open but the proxy will not start. Record the exact error and time before proceeding to avoid mistaking a subscription or node issue for an app crash.

First, identify the problem: is the window closing or the core failing to start?

v2rayN is a graphical client; proxy connections are handled by cores such as Xray and V2Fly. An exiting interface process and an exiting core subprocess are different issues. For the former, check the desktop runtime first; for the latter, check the core files, generated configuration, and listening ports. These Windows runtime steps do not apply to v2rayNG or v2flyNG on Android.

Check processesRecord errorsCheck runtimeInspect filesTest launch

Do not delete the original folder yet. Exit the app completely, then copy the entire folder to a backup location. If your version uses a separate user data folder, back up that location too. Subscription URLs, node credentials, and custom routing rules may be stored there, so backing up only the main app is not enough.

.NET Desktop Runtime: Match the Required Framework and Architecture

Windows WPF builds that depend on an external runtime require the matching .NET Desktop Runtime. This is different from the similarly named .NET Runtime and ASP.NET Core Runtime; installing only those may not be enough to launch the app. Self-contained builds usually do not depend on a separately installed .NET runtime, so do not assume every package needs one.

  1. Check the package type

    Check whether the download page offers a WPF build or another desktop build, and whether it is marked self-contained. Do not apply the runtime requirements for a different build to the file you are using.

  2. Check the framework requirements

    If the folder contains v2rayN.runtimeconfig.json, open it in Notepad and check runtimeOptions.framework or frameworks for the name and version values. If the file is not included, refer to the release notes and startup prompt for that package.

  3. Check the installed runtimes

    Open PowerShell and run the command below. Builds that require the Windows Desktop framework should show a compatible version of Microsoft.WindowsDesktop.App, not just Microsoft.NETCore.App.

  4. Install the matching runtime and try again

    Download the Desktop Runtime matching the required major version and architecture from Microsoft’s official .NET download page. Run the client again after installation. If prompted to restart Windows, do so before testing again.

dotnet --info
dotnet --list-runtimes

For example, a configuration requiring Microsoft.WindowsDesktop.App version 8.0.0 can usually use a .NET 8 Desktop Runtime that meets the default patch roll-forward rules. This is just an example of how to read the fields; it does not mean every v2rayN version uses .NET 8. An installed runtime with a newer major version does not automatically meet the requirement, and you should not edit runtimeconfig.json just to clear an error.

Antivirus Blocks: Check the Logs Before Restoring Files

If the app stops launching after an update or core files disappear after extraction, check the quarantine history first. In Windows Security, go to Virus & threat protection → Protection history. Find the entry matching the time of the issue and verify the full path of the affected file. If you use another security app, check its quarantine or event logs in the same way.

Error: The system cannot find the file specified.

Cause: The app tried to start a file that is missing. It may not have been fully extracted, the path may be misconfigured, or the file may have been quarantined.

Fix: Check the actual path in the log and review Protection history. Once you have confirmed the source is trustworthy, extract the complete release package to a new test folder.

Error: Access is denied.

Cause: Access controls, security policies, or another mechanism blocked execution or writing to the target file. This message alone does not prove it was a false positive.

Fix: Compare the file path with security logs from the same time to identify the cause. If an organization policy is responsible, contact your device administrator.

Do not disable real-time protection for the whole device or add the entire Downloads folder or drive to exclusions. Before restoring a quarantined file, confirm the download source, package type, and file path. If you cannot verify the file, leave it quarantined and obtain a trusted release package. Restoring just one core executable may not be enough if other files from the archive are missing too.

Folder Permissions: Check Write Access Without Running as Administrator

The client may write logs, a settings database, and generated core configuration in addition to reading app files. If it is stored in C:\Program Files, a read-only network share, or a controlled folder, the window may appear briefly and then close. Check the exact path named in the error instead of granting broad permissions to the entire folder.

  1. Exit the client completely and create a local test folder, for example C:\Users\Public\Downloads\v2rayN-test. Use this shared folder only for temporary troubleshooting, not for long-term storage of subscriptions or credentials.
  2. Extract the complete trusted release package to the test folder. For the first launch, do not copy over old settings; run it as a standard user.
  3. Try creating and deleting a text file in the directory where the app writes data. If that fails, check the current account’s permissions under Properties → Security and review Controlled folder access history in Windows Security.
  4. If the app launches from the temporary folder, move it to a dedicated folder your user account can write to, then restore the backup in batches. If your version stores data in your user profile, check permissions for that location as well.

The Read-only checkbox for a folder in File Explorer does not, by itself, prove the folder is unwritable. Better evidence includes a file creation test, the access control list, and the target file path in the error. If a new folder works but the original does not, focus on differences in the environment; there is no need to immediately change nodes or recreate subscriptions.

The Window Stays Open but Connections Fail: Check the Core, Ports, and Configuration

If the main window works, first check local listening settings under Settings → Parameter Settings, then review the log area available in your version. Core and port options may be on different tabs in different versions; use the labels shown in your interface. Do not copy client settings directly into an Xray JSON configuration as if they were Xray fields.

10808
Example listening ports; use the values configured on your device
1000
Common Application Error event IDs
1026
Common .NET Runtime event IDs

If the log shows address already in use or Only one usage of each socket address, check whether another process is using the same address and port. The command below uses 10808 as an example; replace it with the value in Parameter Settings if your port differs. You can look up the process ID under Details in Task Manager. Do not terminate an unfamiliar system process.

Get-NetTCPConnection -LocalPort 10808 -State Listen |
  Select-Object LocalAddress, LocalPort, OwningProcess

Gather Evidence: Compare Event Viewer Results and a Clean Folder

If nothing appears after you double-click the app, press Win + R, enter eventvwr.msc, and open Windows Logs → Application. Look for entries from Application Error, .NET Runtime, and other sources around the time you noted. Event IDs are just clues; read the faulting application path, module name, and exception message too.

What to recordDetailsNext step
Missing runtime promptFramework name, required version, and architectureInstall the matching Desktop Runtime
UnauthorizedAccessExceptionExact file or folder denied accessCheck write permissions and security policies
Core file path does not existLocation of the program it tried to startCheck extracted files and quarantine history
New folder works; old folder failsSame package type, both run without elevationRestore settings in batches to isolate the difference

Once the app opens normally from the new folder, close it and back up this working state. Then restore subscriptions, nodes, and custom rules one at a time, testing the app after each step. If the issue returns after restoring an item, you can narrow it down to that configuration or database instead of deleting all your subscriptions. See the subscription configuration reference for details.

When reporting the issue to a maintainer or device administrator, include your operating system version, client build type, process architecture, installed runtimes, reproduction time, and exception stack trace. Redact subscription URLs, access tokens, UUIDs, passwords, and server addresses from logs first. Keep the error type, module name, and necessary path structure, but do not upload the entire user data folder.

FAQ: Updates, Old Settings, and Startup Permissions

I installed .NET. Why does the app still disappear as soon as it opens?

First confirm that you installed the Desktop Runtime, then check its major version and architecture against the app’s requirements. Run dotnet --list-runtimes and check for a compatible Microsoft.WindowsDesktop.App. If the build is self-contained, focus on complete extraction and the event logs instead of repeatedly installing runtimes.

The app won’t open after an update. Can I overwrite the old folder?

Back up first; repeatedly overwriting the old folder is not recommended. Extract the complete new release package to a separate folder and launch it there. Once you confirm the new package works, restore your data. This helps distinguish incompatible old settings from missing files in the new package and gives you a way to roll back.

It only works when run as administrator. Should I always do that?

Turn off TUN and test the interface with standard permissions. If it still fails, check the log for the path that was denied. Moving the app to a folder your user account can write to or fixing permissions on the specific folder is more targeted than always running it with elevated privileges.

The app opens, but websites won’t load. Is that a crash?

No. If the main window and process are still running, check the core logs, listening ports, system proxy status, and node connectivity first. If the client has exited but your browser still points to a local proxy, check the manual proxy settings under Windows Settings → Network & Internet → Proxy. A leftover system proxy setting can make it look like your internet connection is down.

Download Clients by Platform