[Bug] VRCX Linux can't find/set config.json and Pictures don't receive metadata #570

Closed
opened 2026-04-05 16:21:17 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @EpicGazel on 2/1/2025

Describe the bug
VRCX looks for the VRChat config.json in the wrong folder (I believe this may be exclusive to linux mint (i.e. ubuntu/debian) steam versions). It looks in
/home/username/.local/share/Steam/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/config.json
while it should be
/home/username/.steam/debian-installation/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/config.json
Edit: This same folder issue keeps pictures from being updated with metadata.

To Reproduce
Steps to reproduce the behavior:

  1. Start VRCX in terminal (AppImage, Linux Mint)
  2. Navigate to advanced settings and open VRChat config.json settings
  3. Click save
  4. Error shows

Expected behavior
The config file should be set in the correct location.

Error

Error calling .NET method AppApiElectron.WriteConfigFile Error: Could not find a part of the path '/home/username/.local/share/Steam/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/config.json'.
    at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirError)
    at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, UnixFileMode openPermissions, Int64& fileLength, UnixFileMode& filePermissions, Boolean failForSymlink, Boolean& wasSymlink, Func`4 createOpenException)
    at System.IO.File.OpenHandle(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)
    at System.IO.File.WriteToFile(String path, FileMode mode, String contents, Encoding encoding)
    at VRCX.AppApi.WriteConfigFile(String json) in /mnt/d/WindowsFiles/Documents/git/VRCX/Dotnet/AppApi/Common/VrcConfigFile.cs:line 23
    at VRCX_AppApi_WriteConfigFile(Closure, JSCallbackArgs)
    at Microsoft.JavaScript.NodeApi.Interop.JSCallbackOverload.Invoke(JSCallbackOverload overload, JSCallbackArgs args)
    at Microsoft.JavaScript.NodeApi.Interop.JSCallbackOverload.ResolveAndInvokeDeferred(JSCallbackArgs args)
    at Microsoft.JavaScript.NodeApi.JSValue.InvokeCallback[TDescriptor](napi_env env, napi_callback_info callbackInfo, JSValueScopeType scopeType, Func`2 getCallbackDescriptor)
    at InteropApi.callMethod (/tmp/.mount_VRCX.AhiCi3O/resources/app.asar/src-electron/InteropApi.js:25:35)
    at /tmp/.mount_VRCX.AhiCi3O/resources/app.asar/src-electron/main.js:46:23
    at WebContents.<anonymous> (node:electron/js2c/browser_init:2:87037)
    at WebContents.emit (node:events:518:28)
Error occurred in handler for 'callDotNetMethod': Error: Could not find a part of the path '/home/username/.local/share/Steam/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/config.json'.
    at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirError)
    at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, UnixFileMode openPermissions, Int64& fileLength, UnixFileMode& filePermissions, Boolean failForSymlink, Boolean& wasSymlink, Func`4 createOpenException)
    at System.IO.File.OpenHandle(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize)
    at System.IO.File.WriteToFile(String path, FileMode mode, String contents, Encoding encoding)
    at VRCX.AppApi.WriteConfigFile(String json) in /mnt/d/WindowsFiles/Documents/git/VRCX/Dotnet/AppApi/Common/VrcConfigFile.cs:line 23
    at VRCX_AppApi_WriteConfigFile(Closure, JSCallbackArgs)
    at Microsoft.JavaScript.NodeApi.Interop.JSCallbackOverload.Invoke(JSCallbackOverload overload, JSCallbackArgs args)
    at Microsoft.JavaScript.NodeApi.Interop.JSCallbackOverload.ResolveAndInvokeDeferred(JSCallbackArgs args)
    at Microsoft.JavaScript.NodeApi.JSValue.InvokeCallback[TDescriptor](napi_env env, napi_callback_info callbackInfo, JSValueScopeType scopeType, Func`2 getCallbackDescriptor)
    at InteropApi.callMethod (/tmp/.mount_VRCX.AhiCi3O/resources/app.asar/src-electron/InteropApi.js:25:35)
    at /tmp/.mount_VRCX.AhiCi3O/resources/app.asar/src-electron/main.js:46:23
    at WebContents.<anonymous> (node:electron/js2c/browser_init:2:87037)
    at WebContents.emit (node:events:518:28)

What version you are running
VRCX (Linux) 2025.01.31

*Originally created by @EpicGazel on 2/1/2025* **Describe the bug** VRCX looks for the VRChat config.json in the wrong folder (I believe this may be exclusive to linux mint (i.e. ubuntu/debian) steam versions). It looks in `/home/username/.local/share/Steam/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/config.json` while it should be `/home/username/.steam/debian-installation/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/config.json` Edit: This same folder issue keeps pictures from being updated with metadata. **To Reproduce** Steps to reproduce the behavior: 1. Start VRCX in terminal (AppImage, Linux Mint) 2. Navigate to advanced settings and open VRChat config.json settings 3. Click save 4. Error shows **Expected behavior** The config file should be set in the correct location. **Error** ``` Error calling .NET method AppApiElectron.WriteConfigFile Error: Could not find a part of the path '/home/username/.local/share/Steam/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/config.json'. at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirError) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, UnixFileMode openPermissions, Int64& fileLength, UnixFileMode& filePermissions, Boolean failForSymlink, Boolean& wasSymlink, Func`4 createOpenException) at System.IO.File.OpenHandle(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) at System.IO.File.WriteToFile(String path, FileMode mode, String contents, Encoding encoding) at VRCX.AppApi.WriteConfigFile(String json) in /mnt/d/WindowsFiles/Documents/git/VRCX/Dotnet/AppApi/Common/VrcConfigFile.cs:line 23 at VRCX_AppApi_WriteConfigFile(Closure, JSCallbackArgs) at Microsoft.JavaScript.NodeApi.Interop.JSCallbackOverload.Invoke(JSCallbackOverload overload, JSCallbackArgs args) at Microsoft.JavaScript.NodeApi.Interop.JSCallbackOverload.ResolveAndInvokeDeferred(JSCallbackArgs args) at Microsoft.JavaScript.NodeApi.JSValue.InvokeCallback[TDescriptor](napi_env env, napi_callback_info callbackInfo, JSValueScopeType scopeType, Func`2 getCallbackDescriptor) at InteropApi.callMethod (/tmp/.mount_VRCX.AhiCi3O/resources/app.asar/src-electron/InteropApi.js:25:35) at /tmp/.mount_VRCX.AhiCi3O/resources/app.asar/src-electron/main.js:46:23 at WebContents.<anonymous> (node:electron/js2c/browser_init:2:87037) at WebContents.emit (node:events:518:28) Error occurred in handler for 'callDotNetMethod': Error: Could not find a part of the path '/home/username/.local/share/Steam/steamapps/compatdata/438100/pfx/drive_c/users/steamuser/AppData/LocalLow/VRChat/VRChat/config.json'. at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirError) at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String fullPath, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize, UnixFileMode openPermissions, Int64& fileLength, UnixFileMode& filePermissions, Boolean failForSymlink, Boolean& wasSymlink, Func`4 createOpenException) at System.IO.File.OpenHandle(String path, FileMode mode, FileAccess access, FileShare share, FileOptions options, Int64 preallocationSize) at System.IO.File.WriteToFile(String path, FileMode mode, String contents, Encoding encoding) at VRCX.AppApi.WriteConfigFile(String json) in /mnt/d/WindowsFiles/Documents/git/VRCX/Dotnet/AppApi/Common/VrcConfigFile.cs:line 23 at VRCX_AppApi_WriteConfigFile(Closure, JSCallbackArgs) at Microsoft.JavaScript.NodeApi.Interop.JSCallbackOverload.Invoke(JSCallbackOverload overload, JSCallbackArgs args) at Microsoft.JavaScript.NodeApi.Interop.JSCallbackOverload.ResolveAndInvokeDeferred(JSCallbackArgs args) at Microsoft.JavaScript.NodeApi.JSValue.InvokeCallback[TDescriptor](napi_env env, napi_callback_info callbackInfo, JSValueScopeType scopeType, Func`2 getCallbackDescriptor) at InteropApi.callMethod (/tmp/.mount_VRCX.AhiCi3O/resources/app.asar/src-electron/InteropApi.js:25:35) at /tmp/.mount_VRCX.AhiCi3O/resources/app.asar/src-electron/main.js:46:23 at WebContents.<anonymous> (node:electron/js2c/browser_init:2:87037) at WebContents.emit (node:events:518:28) ``` **What version you are running** VRCX (Linux) 2025.01.31
Sign in to join this conversation.
No Label Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Bug Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done Done
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/VRCX#570