[Bug] SMB mounted volume IO error 1.2.80 "System.IO.FileNotFoundException" #554

Open
opened 2025-01-21 03:04:27 +00:00 by GiulioCDI · 19 comments
GiulioCDI commented 2025-01-21 03:04:27 +00:00 (Migrated from github.com)

Description of the issue

Update 1.2.80 has broken compatibility with mounted SMB shares. I believe the update to .NET 9 has caused this issue. Emulator will crash upon launching any software.

Emulator files and games are located on the network share. Previously emulator would detect the correct emulated system version in the bottom right corner.
After the update, the detected System version is NaN.

The previous version would also correctly list the mounted network path in console: D:\FOLDER_TO_EMULATOR...
After the update, folder path is listed as follows: \?\UNC\NETWORK_LOCATION...

Reproduction steps

Update to v1.2.80 and attempt to launch a game with the emulator running on an SMB network mounted disk.

Log file

Ryujinx_1.2.80_2025-01-20_21-49-27.log

OS

Windows 11 23H2

Ryujinx version

1.2.80

Game version

NA

CPU

AMD 7950X

GPU

NVIDIA RTX 4090

RAM

64 GB

List of applied mods

NA

Additional context?

No response

### Description of the issue Update 1.2.80 has broken compatibility with mounted SMB shares. I believe the update to .NET 9 has caused this issue. Emulator will crash upon launching any software. Emulator files and games are located on the network share. Previously emulator would detect the correct emulated system version in the bottom right corner. After the update, the detected System version is NaN. The previous version would also correctly list the mounted network path in console: D:\FOLDER_TO_EMULATOR\... After the update, folder path is listed as follows: \\?\UNC\NETWORK_LOCATION\... ### Reproduction steps Update to v1.2.80 and attempt to launch a game with the emulator running on an SMB network mounted disk. ### Log file [Ryujinx_1.2.80_2025-01-20_21-49-27.log](https://github.com/user-attachments/files/18484224/Ryujinx_1.2.80_2025-01-20_21-49-27.log) ### OS Windows 11 23H2 ### Ryujinx version 1.2.80 ### Game version NA ### CPU AMD 7950X ### GPU NVIDIA RTX 4090 ### RAM 64 GB ### List of applied mods NA ### Additional context? _No response_
x7l7j8cc commented 2025-01-22 16:23:48 +00:00 (Migrated from github.com)

I have the same problem, with both 1.2.80 and 1.2.81... If i go back to 1.2.78 , all goes back to normal.

I have the same problem, with both 1.2.80 and 1.2.81... If i go back to 1.2.78 , all goes back to normal.
GreemDev commented 2025-01-22 16:24:36 +00:00 (Migrated from github.com)
Use that version then. [I'm not undoing the upgrade to .NET 9 because of a weird edge case with how some people decide to store their games.](https://xkcd.com/1172/)
x7l7j8cc commented 2025-01-22 16:42:20 +00:00 (Migrated from github.com)

@GreemDev We didnt tell you to reverse the .NET upgrade... But, more then anything to look up to fix the problem?
If before was working fine, but now it doesnt, i dont see why you cant fix. Obviously if the problem is with .NET 9 itself, there nothing we can do, we have to wait for a fix from Microsoft, i understand that.. in this case or we SMB users stick with 1.2.78 at the moment, or someone have to find a workaround to fix the Bug. Because "weird edge" or not, there are users that can and use a NAS to store anything and/or use SMB Share.

In my case I use a NAS, because for me its more convenient, and i can access those files whenever i am.

Dont cut off people only because they use a NAS/SMB Share. Please.

@GreemDev We didnt tell you to reverse the .NET upgrade... But, more then anything to look up to fix the problem? If before was working fine, but now it doesnt, i dont see why you cant fix. Obviously if the problem is with .NET 9 itself, there nothing we can do, we have to wait for a fix from Microsoft, i understand that.. in this case or we SMB users stick with 1.2.78 at the moment, or someone have to find a workaround to fix the Bug. Because "weird edge" or not, there are users that can and use a NAS to store anything and/or use SMB Share. In my case I use a NAS, because for me its more convenient, and i can access those files whenever i am. Dont cut off people only because they use a NAS/SMB Share. Please.
GreemDev commented 2025-01-22 16:43:48 +00:00 (Migrated from github.com)

@GreemDev We didnt tell you to reverse the .NET upgrade... But, more then anything to look up to fix the problem? If before was working fine, but now it doesnt, i dont see why you cant fix. Obviously if the problem is with .NET 9 itself, there nothing we can do, we have to wait for a fix from Microsoft, i understand that.. in this case or we SMB users stick with 1.2.78 at the moment, or someone have to find a workaround to fix the Bug. Because "weird edge" or not, there are users that can and use a NAS to store anything and/or use SMB Share.

In my case I use a NAS, because for me its more convenient, and i can access those files whenever i am.

Dont cut off people only because they use a NAS/SMB Share. Please.

The .NET upgrade is realistically the only thing that caused this. I didn't make any changes to how anything is loaded.

> [@GreemDev](https://github.com/GreemDev) We didnt tell you to reverse the .NET upgrade... But, more then anything to look up to fix the problem? If before was working fine, but now it doesnt, i dont see why you cant fix. Obviously if the problem is with .NET 9 itself, there nothing we can do, we have to wait for a fix from Microsoft, i understand that.. in this case or we SMB users stick with 1.2.78 at the moment, or someone have to find a workaround to fix the Bug. Because "weird edge" or not, there are users that can and use a NAS to store anything and/or use SMB Share. > > In my case I use a NAS, because for me its more convenient, and i can access those files whenever i am. > > Dont cut off people only because they use a NAS/SMB Share. Please. The .NET upgrade is realistically the only thing that caused this. I didn't make any changes to how anything is loaded.
GiulioCDI commented 2025-01-22 16:44:10 +00:00 (Migrated from github.com)

I'm not asking for you to revert a change.

I'm asking if it would be possible to look into why this issue is occurring. It is possible the issue is related to .NET 9. But this may not be the case. If you could take a bit of time to look into the issue I believe both I and x7l7j8cc would appreciate it.

I understand this issue will effect a small subset of users but for us it would make a huge difference. Thank you.

I'm not asking for you to revert a change. I'm asking if it would be possible to look into why this issue is occurring. It is possible the issue is related to .NET 9. But this may not be the case. If you could take a bit of time to look into the issue I believe both I and x7l7j8cc would appreciate it. I understand this issue will effect a small subset of users but for us it would make a huge difference. Thank you.
GreemDev commented 2025-01-22 16:45:01 +00:00 (Migrated from github.com)

I'm not asking for you to revert a change.

I'm asking if it would be possible to look into why this issue is occurring. It is possible the issue is related to .NET 9. But this may not be the case. If you could take a bit of time to look into the issue I believe both I and x7l7j8cc would appreciate it.

I understand this issue will effect a small subset of users but for us it would make a huge difference. Thank you.

Refer to the comment I just made.

> I'm not asking for you to revert a change. > > I'm asking if it would be possible to look into why this issue is occurring. It is possible the issue is related to .NET 9. But this may not be the case. If you could take a bit of time to look into the issue I believe both I and x7l7j8cc would appreciate it. > > I understand this issue will effect a small subset of users but for us it would make a huge difference. Thank you. Refer to the comment I just made.
dxgldotorg commented 2025-01-23 08:01:23 +00:00 (Migrated from github.com)

I recently moved my emulator folders to my NAS, and used a symlink to bind it to my network path. Seems to work fine on my end.

I recently moved my emulator folders to my NAS, and used a symlink to bind it to my network path. Seems to work fine on my end.
kftX commented 2025-01-24 13:10:41 +00:00 (Migrated from github.com)

I recently moved my emulator folders to my NAS, and used a symlink to bind it to my network path. Seems to work fine on my end.

How exactly did you manage this? I created a symlink to my emulator folder on my NAS but Ryujinx still refused to display firmware version and sees itself as installed on \UNC\SERVERNAME\Folder

> I recently moved my emulator folders to my NAS, and used a symlink to bind it to my network path. Seems to work fine on my end. How exactly did you manage this? I created a symlink to my emulator folder on my NAS but Ryujinx still refused to display firmware version and sees itself as installed on \\UNC\SERVERNAME\Folder
x7l7j8cc commented 2025-01-24 17:10:06 +00:00 (Migrated from github.com)

@dxgldotorg @kftX
For me symlink doesnt work , as im on Windows.. and Windows doesnt allow to create a symlink to a NAS / SMB Share, you can only create a "Desktop Type Link".

@dxgldotorg @kftX For me symlink doesnt work , as im on Windows.. and Windows doesnt allow to create a symlink to a NAS / SMB Share, you can only create a "Desktop Type Link".
dxgldotorg commented 2025-01-24 21:43:03 +00:00 (Migrated from github.com)

@dxgldotorg @kftX For me symlink doesnt work , as im on Windows.. and Windows doesnt allow to create a symlink to a NAS / SMB Share, you can only create a "Desktop Type Link".

mklink /d link target

> [@dxgldotorg](https://github.com/dxgldotorg) [@kftX](https://github.com/kftX) For me symlink doesnt work , as im on Windows.. and Windows doesnt allow to create a symlink to a NAS / SMB Share, you can only create a "Desktop Type Link". mklink /d link target
x7l7j8cc commented 2025-01-25 04:42:51 +00:00 (Migrated from github.com)

@dxgldotorg I used that same command, but when used on a smb/nas it simply create a link on windows.

@dxgldotorg I used that same command, but when used on a smb/nas it simply create a link on windows.
kftX commented 2025-01-25 12:47:32 +00:00 (Migrated from github.com)

@dxgldotorg I used that same command, but when used on a smb/nas it simply create a link on windows.

Yup, can confirm the same. I knew about mklink /d but the thing is that's a soft-link and doesn't work, I thought he'd done something different. Linux allows for hard linking folders but Windows does not. There is a junction option in Windows as well, but it can't point to non-local drives. So basically we keep the old version.

> [@dxgldotorg](https://github.com/dxgldotorg) I used that same command, but when used on a smb/nas it simply create a link on windows. Yup, can confirm the same. I knew about _mklink /d_ but the thing is that's a soft-link and doesn't work, I thought he'd done something different. Linux allows for hard linking folders but Windows does not. There is a junction option in Windows as well, but it can't point to non-local drives. So basically we keep the old version.
dxgldotorg commented 2025-01-26 00:42:14 +00:00 (Migrated from github.com)

@dxgldotorg I used that same command, but when used on a smb/nas it simply create a link on windows.

Yup, can confirm the same. I knew about mklink /d but the thing is that's a soft-link and doesn't work, I thought he'd done something different. Linux allows for hard linking folders but Windows does not. There is a junction option in Windows as well, but it can't point to non-local drives. So basically we keep the old version.

Maybe recent Canary builds of Windows handle the symlink redirection better, as that is what I'm running on. Can't test at the very moment as my server is having issues, but it did work for me. Edit: Booted up TOTK 1.2.1 and could play and save fine.

> > [@dxgldotorg](https://github.com/dxgldotorg) I used that same command, but when used on a smb/nas it simply create a link on windows. > > Yup, can confirm the same. I knew about _mklink /d_ but the thing is that's a soft-link and doesn't work, I thought he'd done something different. Linux allows for hard linking folders but Windows does not. There is a junction option in Windows as well, but it can't point to non-local drives. So basically we keep the old version. Maybe recent Canary builds of Windows handle the symlink redirection better, as that is what I'm running on. ~~Can't test at the very moment as my server is having issues, but it did work for me.~~ Edit: Booted up TOTK 1.2.1 and could play and save fine.
GiulioCDI commented 2025-01-26 00:55:52 +00:00 (Migrated from github.com)

Here is a python script I created to create a .bat file with all the mklink commands for directories containing a mix of folders and files.

Change the extension of the file from .txt to .py in order to use it.

The python script asks for a network directory and a local directory and will create a .bat file containing the commands for a symlink from the network directory to the local directory.

Run the created .bat in order to create the symlink. Finally, you must delete the Ryujinx.exe from the local folder since it's a symlink file and replace it with a copy of the .exe from the network folder.

Symbolic Link Create.txt

Here is a python script I created to create a .bat file with all the mklink commands for directories containing a mix of folders and files. Change the extension of the file from .txt to .py in order to use it. The python script asks for a network directory and a local directory and will create a .bat file containing the commands for a symlink from the network directory to the local directory. Run the created .bat in order to create the symlink. Finally, you must delete the Ryujinx.exe from the **local** folder since it's a symlink file and replace it with a copy of the .exe from the **network** folder. [Symbolic Link Create.txt](https://github.com/user-attachments/files/18548465/Symbolic.Link.Create.txt)
x7l7j8cc commented 2025-01-26 07:33:46 +00:00 (Migrated from github.com)

@GiulioCDI This are the results...
"Impossibile trovare il percorso specificato." -> "The specified path could not be found."

EDIT: I needed to create manually the Folder.

@GiulioCDI ~This are the results... "Impossibile trovare il percorso specificato." -> "The specified path could not be found."~ EDIT: I needed to create manually the Folder.
x7l7j8cc commented 2025-01-26 10:04:55 +00:00 (Migrated from github.com)

@GiulioCDI Ok, after a bit, i can confirm that the method GiulioCDI wrote, works fine.

GiulioCDI, i changed a bit the python code, and ended up creating 2 methods...

  • one with the BAT file, similar to yours (but with some code changed/added).
  • and the other one, letting python do the entire things.

Either two do their things Fully Automatically (just need the source and destination folder), so there is no need to manually copy or other things. Obviously if anyone is interested.

RyujiNX_SymLink_Generator.py.txt
RyujiNX_SymLink_Generator(with_BAT).py.txt

@GiulioCDI Ok, after a bit, i can confirm that the method GiulioCDI wrote, works fine. GiulioCDI, i changed a bit the python code, and ended up creating 2 methods... - one with the BAT file, similar to yours (but with some code changed/added). - and the other one, letting python do the entire things. Either two do their things Fully Automatically (just need the source and destination folder), so there is no need to manually copy or other things. Obviously if anyone is interested. [RyujiNX_SymLink_Generator.py.txt](https://github.com/user-attachments/files/18549581/RyujiNX_SymLink_Generator.py.txt) [RyujiNX_SymLink_Generator(with_BAT).py.txt](https://github.com/user-attachments/files/18549582/RyujiNX_SymLink_Generator.with_BAT.py.txt)
kftX commented 2025-01-26 10:20:05 +00:00 (Migrated from github.com)

@dxgldotorg I used that same command, but when used on a smb/nas it simply create a link on windows.

Yup, can confirm the same. I knew about mklink /d but the thing is that's a soft-link and doesn't work, I thought he'd done something different. Linux allows for hard linking folders but Windows does not. There is a junction option in Windows as well, but it can't point to non-local drives. So basically we keep the old version.

Maybe recent Canary builds of Windows handle the symlink redirection better, as that is what I'm running on. Can't test at the very moment as my server is having issues, but it did work for me. Edit: Booted up TOTK 1.2.1 and could play and save fine.

I tested the most recent Canary and the issue is still there. It does not detect or install any firmware as the path \UNC[...] is unavailable. Are you sure your Ryujinx itself is on the NAS? Because the dumps being located on the NAS/Server is fine, what breaks Ryujinx is the emulator itself (with a portable folder) being located on the NAS/Server.

> > > [@dxgldotorg](https://github.com/dxgldotorg) I used that same command, but when used on a smb/nas it simply create a link on windows. > > > > > > Yup, can confirm the same. I knew about _mklink /d_ but the thing is that's a soft-link and doesn't work, I thought he'd done something different. Linux allows for hard linking folders but Windows does not. There is a junction option in Windows as well, but it can't point to non-local drives. So basically we keep the old version. > > Maybe recent Canary builds of Windows handle the symlink redirection better, as that is what I'm running on. ~Can't test at the very moment as my server is having issues, but it did work for me.~ Edit: Booted up TOTK 1.2.1 and could play and save fine. I tested the most recent Canary and the issue is still there. It does not detect or install any firmware as the path \\UNC\[...] is unavailable. Are you sure your Ryujinx itself is on the NAS? Because the dumps being located on the NAS/Server is fine, what breaks Ryujinx is the emulator itself (with a portable folder) being located on the NAS/Server.
GiulioCDI commented 2025-01-26 18:20:47 +00:00 (Migrated from github.com)

I tested the most recent Canary and the issue is still there. It does not detect or install any firmware as the path \UNC[...] is unavailable. Are you sure your Ryujinx itself is on the NAS? Because the dumps being located on the NAS/Server is fine, what breaks Ryujinx is the emulator itself (with a portable folder) being located on the NAS/Server.

Here is a screenshot of my local folder. All files and folder except for Ryujinx.exe are symlinks. The .exe is the only file that needs to actually be present in the local directory. I took a screenshot of my Ryujinx folder for easier understanding.

EDIT

When installing firmware use the symlink path and not the network path.

Installing firmware from a network folder seems to work without a problem.

Image

> I tested the most recent Canary and the issue is still there. It does not detect or install any firmware as the path \UNC[...] is unavailable. Are you sure your Ryujinx itself is on the NAS? Because the dumps being located on the NAS/Server is fine, what breaks Ryujinx is the emulator itself (with a portable folder) being located on the NAS/Server. Here is a screenshot of my local folder. All files and folder except for Ryujinx.exe are symlinks. The .exe is the only file that needs to actually be present in the local directory. I took a screenshot of my Ryujinx folder for easier understanding. EDIT ~~When installing firmware use the symlink path and not the network path.~~ Installing firmware from a network folder seems to work without a problem. ![Image](https://github.com/user-attachments/assets/e8fe6429-fcd7-48fe-a8fe-703077106eb6)
kftX commented 2025-02-12 17:04:25 +00:00 (Migrated from github.com)

As a quick update, LaunchBox just recently updated to .NET 9 as well, and my network shares do not seem to suffer from the same issue: they are detected as Drive E, F, G, ect, rather than UNC\SERVERNAME\[...]

This seems to be abandoned, but just wanted to give that small piece of feedback.

As a quick update, LaunchBox just recently updated to .NET 9 as well, and my network shares do not seem to suffer from the same issue: they are detected as Drive E, F, G, ect, rather than UNC\\SERVERNAME\\[...] This seems to be abandoned, but just wanted to give that small piece of feedback.
Sign in to join this conversation.
No Milestone
No project
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MeloNX/Ryujinx-ryubing#554
No description provided.