NiceneNerd / BCML

Breath of the Wild Cross-Platform Mod Loader: A mod merger and manager for BOTW
308 stars 57 forks source link

Failed to symlink output folder: No such file or directory #522

Closed foresto closed 1 year ago

foresto commented 1 year ago

When I try to enable or disable a mod, BCML fails with RuntimeError: Failed to export merged mods. It happens even when I use the "Disable links for master mod" setting.

This message comes from the rust extension. It reports a "no such file or directory" error, but that's not very helpful since it doesn't say what file or directory, or what operation it's trying to perform.

v3.10.8 on Linux

Maybe relevant: I'm using the Linux version of Cemu, so it's possible that a file or directory is named or located differently from the Windows version.

Traceback (most recent call last):
  File "/app/lib/python3.10/site-packages/bcml/_api.py", line 468, in mod_action
    install.enable_mod(mod, wait_merge=True)
  File "/app/lib/python3.10/site-packages/bcml/install.py", line 265, in do_and_refresh
    refresh_master_export()
  File "/app/lib/python3.10/site-packages/bcml/util.py", line 464, in timed_function
    res = func(*args, **kwargs)
  File "/app/lib/python3.10/site-packages/bcml/install.py", line 274, in refresh_master_export
    link_master_mod()
  File "/app/lib/python3.10/site-packages/bcml/install.py", line 745, in link_master_mod
    rsext.manager.link_master_mod(str(output) if output else None)
RuntimeError: Failed to export merged mods

Caused by:
    0: Failed to symlink output folder
    1: No such file or directory (os error 2)
foresto commented 1 year ago

For the record, I'm fairly sure my settings are good, since BCML highlights them all in green, and an older BCML version (3.4.9) works with the same files & settings.

(I just had to create an empty Cemu.exe file in the appropriate directory, to make BCML happy, because the linux build doesn't have an .exe file.)

GingerAvalanche commented 1 year ago

There’s a phantom bug where some people - for reasons unknown - can’t get the final merge manager code to read their bcml settings file. It always fails and generates an empty, default settings file instead. Never was able to figure out why that was, or how to fix it reliably. Whenever it got fixed, it just “magically” fixed itself.

You should probably switch to UKMM. bcml isn’t supported anymore. Could also try downgrading to some bcml 3.9.* version (pip install bcml~=3.9) to see if that works for you.

neebyA commented 1 year ago

@foresto

Care to share what the appropriate directory was to touch the .exe in? I'm running into this exact issue too with the "Disable links for master mod" checked 🙁

foresto commented 1 year ago

@neebyA

I think it was the directory that contains Cemu's graphicPacks dir. In my case, that was ~/.var/app/info.cemu.Cemu/data/Cemu. (I'm using a Cemu flatpak.) If it wasn't that directory, then it was the one that contains Cemu's settings.xml file.

I no longer have my BCML installation, since I'm trying to replace it with UKMM, so I can't check to be sure.

neebyA commented 1 year ago

@foresto

Thanks!