World uploading failed on Linux
tracked
YTJVDCM
I tried to upload world on Linux .
But, it's failing with the message "Last built VRChat scene could not be found. Please Test/Compile Full Scene (slow)".
"Last Build" and "Build & Publish for Windows" button does not work with this message, but "Build & Test" can work and I can local test it.
Log In
Fairplex
Another workaround for the SDK 3.5.2:
Momo the Monster
Merged in a post:
[Fix Included] World Uploads Do Not Work On Linux
Pint
VRChat Version: N/A
Description of the bug: When trying to upload a world (and possibly) avatar on Linux, VRChat reports that the last build could not be found. After investigating this, I've discovered that VRChat saves the asset bundle with a lowercase file name, but saves the filename as uppercase in the lastVRCPath editor pref. This is because Linux treats filenames as case-sensitive, while Windows does not.
For example, VRChat might save the asset bundle to /tmp/FilePath/to/Asset/asset-bundle.vrcw but saves /tmp/FilePath/to/Asset/Asset-Bundle.vrcw in the editor pref. Then, when it tries to read the asset bundle, it has the wrong filename so it reports that the file cannot be found.
Potential Resolution:
The best fix that I can image would be to save the correct name in lastVRCPath, or to just not lowercase the file name when saving the asset bundle. Right now my work-around is to add the following code:
var paths = EditorPrefs.GetString("lastVRCPath").Split('/');
var firstPaths = string.Join("/", paths.Take(paths.Length - 1));
EditorPrefs.SetString("lastVRCPath", firstPaths + "/" + paths[paths.Length - 1].ToLower());
Immediately before "VRC_SdkBuilder.UploadLastExportedSceneBlueprint();" in "VRCSdkControlPanelWorldBuilder3.cs". Then, I build and publish (which will fail) and then upload the last build (which will succeed).
Steps to reproduce (how did you encounter the bug?):
Upload a world under Linux.
Momo the Monster
tracked
Happyrobot33
STILL an issue after SDK 3.5.1, just so a random dev doesnt come along here and think they fixed it
Happyrobot33
bump on this, should take a dev literally 5 minutes to fix, all that needs to be added is a ToLower() at the end of a string concat in VRCWorldAssetExporter
(namely around here)
string[] obj = new string[5] { "scene-", null, null, null, null };
BuildTarget activeBuildTarget = EditorUserBuildSettings.activeBuildTarget;
obj[1] = ((object)(BuildTarget)(ref activeBuildTarget)).ToString();
obj[2] = "-";
activeScene = SceneManager.GetActiveScene();
obj[3] = ((Scene)(ref activeScene)).name;
obj[4] = ".vrcw";
string text3 = string.Concat(obj); <--- Add .ToLower() here
Happyrobot33
For more context on this fix
on windows, paths are case-insensitive
on linux, paths are case-sensitive
in Unity, when creating asset bundles, they
always
will have a lowercase file name, even if you give them a uppercase name upon creationThe root of the issue here is windows is fine looking for
scene-StandaloneWindows64-worldscene.vrcw
and returning scene-standalonewindows64-worldscene.vrcw
insteadLinux however doesnt do this, as its case sensitive. Lowercase casting the concated string will fix this. this purely comes from the fact the
EditorUserBuildSettings.activeBuildTarget
returns a mixed case responseYTJVDCM
This issue still exists in the latest SDK.
And the error message just changed to "Build Failed".
And Pint showed way does not work anymore.
Pint
It's a very easy fix. It's basically caused by them creating the filename with uppercase letters, but saving it to the filesystem with lowercase letters. Then, they try to read the uppercase one, which Linux considers to be a different file (but Windows doesn't). For a simple workaround see https://feedback.vrchat.com/bug-reports/p/fix-included-world-uploads-do-not-work-on-linux , but it's infuriating that such a simple fix has yet to be made.
M
MilesZollo
Linux does take up a big chunk of the player base so if they are planning to make sdk2 completely unusable they should make it so everyone can update their worlds to sdk3
psinfulness
Steps to reproduce:
1) Create a new project
2) Import the SDK3 unity package
3) Open the UdonExampleScene
4) Build & Publish
The "Last built VRChat scene could not be found. Please Test/Compile Full Scene (slow)" message box appears.
Tested on Linux Mint 21 Cinnamon Edition
Note that SDK3 for avatars works fine.
psinfulness
I can confirm this workaround works:
h
hecc113
This'll be a problem if not adressed soon.
Load More
→