This guide covers v2rayN opening to no window, closing on launch, or failing to open after an update. First distinguish a crashed interface from a failed core, then check the runtime, package architecture, write permissions, and user data. Windows is the primary focus; macOS app permissions and architecture are covered separately. Back up before isolating anything, and change one thing at a time to avoid losing subscriptions or routing settings while restoring the app.
1. Tell a Crash from a Hidden Window or Core Failure
“Won’t open” doesn’t always mean the app has crashed. v2rayN can keep running in the system tray after its main window closes, or an existing instance may prevent a new window from opening. On Windows, check the hidden icons in the taskbar, then open Task Manager and look for v2rayN.exe under “Details.” If the process is still running, try restoring the window from the tray first. Avoid repeatedly double-clicking the app, which can make troubleshooting harder.
| What you see | Likely cause | Next step |
|---|---|---|
| Process appears briefly, then disappears | Runtime, permissions, or settings issue | Capture startup output and system events |
| Process is running, but the main window is missing | Minimized to tray or window positioned off-screen | Restore from the tray; check again after disconnecting external displays |
| Interface opens, but logs show the core exiting | Core files, generated config, or listening port issue | Check the first core error instead of reinstalling the desktop runtime |
| Exits or errors only when TUN is enabled | Elevation, driver, or virtual network adapter issue | Turn off TUN first and test standard proxy mode |
Before continuing, quit the app from the tray. If the interface is unresponsive, end the corresponding process in Task Manager. Copy the entire app folder and back up the user data directory used by this version. Subscription URLs, node UUIDs, passwords, and private keys are sensitive; redact them from screenshots and logs before sharing.
2. Read the Startup Error and Install the Required .NET Runtime
On Windows, framework-dependent packages require the matching .NET runtime to be installed. Self-contained packages usually include their own runtime. Don’t rule out a runtime issue just because .NET is already installed: a desktop app may require Microsoft.WindowsDesktop.App, which is not provided by installing only Microsoft.NETCore.App or the ASP.NET Core runtime. The runtime architecture must also match, such as x64 or ARM64.
Open PowerShell in the extracted app folder and run the commands below. The first tries to capture app output, the second lists runtimes currently available, and the third checks the runtime requirements bundled with the app. Some GUI apps don’t print errors to the terminal, so a blank screen doesn’t prove that startup succeeded.
.\v2rayN.exe
dotnet --list-runtimes
Get-ChildItem -Filter "*.runtimeconfig.json" | Get-Content
If the dotnet command is unavailable, the runtime may not be installed, or the command search path may not be up to date. Self-contained packages may not need a system-provided command at all, so check the package type and startup message. In runtimeconfig.json, check framework or frameworks for name and version. For example, if the package requires Microsoft.WindowsDesktop.App, install the matching major version of the .NET Desktop Runtime from Microsoft. Do not change the version number in the configuration to bypass the requirement.
Error: You must install or update .NET to run this application.
Cause and fix: The required runtime wasn’t found. Note the framework name, version, and architecture shown in the dialog, install the matching desktop runtime, then relaunch the app. Installing only a newer major version may not satisfy a requirement for an older one.
Error: The framework 'Microsoft.WindowsDesktop.App' was not found.
Cause and fix: The Windows desktop framework is missing, or its architecture doesn’t match the app. Check whether the package is x64 or ARM64, then install the .NET Desktop Runtime for the same architecture and required major version.
Error: This app can't run on your PC
Cause and fix: This is a general Windows startup message and may indicate an incompatibility between the executable and your system. Check “Settings” → “System” → “About” for your system type, then compare it with the package’s supported system requirements. Don’t assume it’s a node issue.
Bottom line: Follow the framework named in the startup message
Check the framework name, major version, and architecture first, then install what’s missing. If the app still crashes after the runtime is installed, keep the new error and continue troubleshooting instead of installing different versions at random.
3. Check the Extraction and Folder Permissions
Double-clicking the app from a compressed folder preview may extract only the executable to a temporary location, leaving its dependencies, resources, or core files behind. Quit the app, extract the entire package to a dedicated folder, and launch it from there. When updating, don’t mix files from packages with different architectures or interface builds.
- Use a writable folder: For example, enter
%LOCALAPPDATA%in File Explorer’s address bar and create av2rayN-testfolder for a clean test. Avoid protected system folders, network shares, and folders being synced. - Test write access: Create a text file in the data directory the app actually uses, save it, then delete it. If access is denied, check your account permissions and your security software’s folder protection history.
- Extract the full package again: Keep the original folder and extract the complete package from the same source, with the same architecture, into a new folder. If extraction reports an error, address possible archive corruption or disk issues first.
- Check blocked-item history: On Windows, open “Windows Security” → “Virus & threat protection” → “Protection history” and check whether any files were quarantined. Verify the source and alert details before taking action; don’t disable all protection.
The app’s standard interface shouldn’t require administrator privileges for everyday use. If it opens only when run as administrator, the install location or access permissions likely need attention; features such as TUN may require elevation for separate reasons. Test startup with a standard account first to avoid confusing permission differences with other issues.
Error: Access to the path ... is denied.
Cause and fix: The app was denied access to a path. The path in the error is the key clue: determine whether it points to settings, logs, or a temporary file, then fix permissions for that location or move the data to a folder your account can write to.
4. Isolate Corrupted Settings Without Losing Subscriptions or Routes
An interrupted update, an unexpected shutdown, or low disk space can leave settings or a database unreadable. Replacing the app files repeatedly may not help because the damaged data is still in place. First find where this package stores its data: some versions use folders such as guiConfigs inside the app directory, while others use a user profile location. Check the actual files, log paths, and documentation for your version. Don’t delete a supposedly fixed filename based on an old guide.
- Quit completely: Exit v2rayN and any core processes it started to prevent the app from writing the old state back to disk as it closes.
- Make a backup copy: Copy the entire data directory to another location and note the app version, data path, and time. Don’t back up just one JSON file; node data may be stored in a database.
- Rename the data folder to isolate it: Rename the confirmed data directory, for example by appending
-backup-20260909to its name. Change only one target. If you can’t confirm the location, check the logs first; don’t move multiple system folders. - Test startup: Let the app create fresh default data. If it opens reliably with a clean setup but closes again after you restore the old data, the issue is likely with the settings or database compatibility.
- Restore in stages: Import one node and test it, then restore subscriptions, followed by custom routes, DNS, and other advanced options. Restart after restoring each category.
If the app still crashes with clean settings, restore the backup and investigate the runtime environment or system events instead of deleting more files. If the error specifically mentions JSON parsing, check a copy of the file for missing commas or quotes, or a truncated file. Don’t try to edit database read/write errors in a text editor.
5. If the Interface Opens, Check the Core and Port Conflicts
v2rayN is the management interface; cores such as Xray handle proxy connections. If the main window opens but the core exits, focus on core files, generated configuration, and listening ports. VMess or VLESS connection timeouts usually occur during the connection stage and won’t be fixed by reinstalling the desktop runtime.
Ports and inbound types vary by version. First check “Settings” → “Parameters Settings” for the local listening port, or find the inbound port in the core’s generated config. The commands below apply only if the config uses 10808. If it uses a different port, replace the number in the commands accordingly.
Get-NetTCPConnection -State Listen -LocalPort 10808 |
Select-Object LocalAddress, LocalPort, OwningProcess
The output’s OwningProcess value is a process ID you can look up in Task Manager. No output doesn’t mean the whole app is working; it only means this check didn’t find a TCP listener on that port. If an old core or another instance is using the port, quit that process normally or choose an unused port in settings. Update any apps configured to use a manual proxy as well.
- Log says address already in use: Check for a port conflict or duplicate instance first. Don’t change the remote server’s port.
- Log says the core file is missing: Check that the full package includes the required core and that security software hasn’t quarantined it.
- Log reports a config parse error: Temporarily remove the custom settings you added most recently, then test with a single node and the default routing rules.
- Only TUN fails: Turn off TUN and test the system proxy, then check elevation prompts, network adapters, and driver status separately.
6. Troubleshoot macOS Startup Issues Separately
v2rayN on macOS doesn’t use the Windows desktop runtime, so installing the Windows Desktop Runtime won’t fix a Mac app that won’t launch. Check your processor type under “About This Mac” in the Apple menu, then choose a package for Apple silicon or Intel. If macOS reports an architecture mismatch, use the matching package rather than repeatedly changing settings.
- App wasn’t fully installed: Follow the package instructions to extract or copy the app, place it in a permanent application folder, and launch it from there. Don’t use a temporary extraction location for everyday use.
- macOS blocked the app: Verify the download source, then check the relevant message under “System Settings” → “Privacy & Security.” Address the warning for this app only; don’t disable macOS security checks globally.
- Another instance is running: Open Activity Monitor and check whether v2rayN is still running. Use the menu bar to restore its window.
- App crashes on launch: Open Console, find the relevant crash report, and note the exception type, app version, and architecture before deciding whether to isolate user settings.
On a Mac, distinguish between an app that won’t open and a core that won’t start. If the main interface works but enabling the system proxy or TUN causes problems, note the action that triggers the issue and any permission prompts, then troubleshoot that feature. Don’t apply Windows registry, desktop runtime, or folder path instructions to macOS.
7. Verify the Fix and Answer Common Questions
Once the window is back, check Windows Event Viewer. Press Win + R, enter eventvwr.msc, then look under “Windows Logs” → “Application” for a .NET Runtime or Application Error event at the time of the crash. Note the exception type, faulting module, and time. Event IDs can help narrow things down, but don’t use an ID alone to decide what to reinstall.
Why does v2rayN still crash after I installed the latest .NET?
The latest major version doesn’t necessarily replace the one the app requires. Check the startup dialog or runtimeconfig.json again to see whether the Windows desktop framework is required and whether the runtime architecture matches the app. If all three match, investigate application events and settings next.
Will uninstalling and reinstalling delete my subscriptions?
That depends on where the data is stored and how you uninstall. Quit the app and copy the entire data directory first. If the interface opens, export anything you need separately. Re-extracting the app files is not the same as backing up your subscriptions.
It opens from a new folder. What should I do with the original?
A successful launch from a new folder shows the app can start, but doesn’t distinguish a permission issue from corrupted old data. First confirm the new instance isn’t still reading the old data. Then import subscriptions and routes in stages. Keep the original folder until the app has passed several restart tests.
The app opens again, but my browser can’t get online. Why?
Check the core logs first, then verify the system proxy and the actual listening port. A system proxy left behind after a crash may still point to a local port that is no longer active. On Windows, check “Settings” → “Network & Internet” → “Proxy” and make sure the manual proxy address matches the current client.
Bottom line: Confirm the fix with staged tests
First verify that the app starts with default settings, exits cleanly, and opens again. Then test a single node, and restore subscriptions, routes, and TUN last. When reporting an issue, include your OS version, package architecture, whether the package is self-contained, the full exception type, and the isolation steps you tried. That’s much more useful than simply saying “it crashes.”