Forum Discussion

Nihilior's avatar
Nihilior
Explorer
11 months ago

Error: "Saving Prefab to immutable folder is not allowed" in Unity with Meta All-In-One SDK

I am setting up a fresh Unity project for a VR project that uses Meta All-In-One SDK. To do this, I created a new 3D built-in render pipeline project, and I imported the Meta-All-In-One SDK (ver.68, but this happens with the 66 as well) from the Package Manager. After the package is imported, I fix and apply all the reccomended fixes, set up the build for Android, and select Oculus as XR plugin manager. Right after doing these operations, and as soon as I save the project, immediately an error pops up:

Saving Prefab to immutable folder is not allowed: Packages/com.meta.xr.sdk.interaction.ovr/Editor/Blocks/Interactors/Prefabs/[BB] Hand Ray.prefab
UnityEditor.EditorApplication:Internal_CallGlobalEventHandler ()

This happens mainly on these two objects: BB hand ray, and OVR camera rig interaction. Important to note is that no game objects or prefabs were added to the scene (that contains only Main Camera and Directional Light). This is a problem because is affecting the Build and Run operation, returning in errors when building Player.

I also had a try on another, more developed project, and this same error happens, but the Play mode with Quest Link is not affected at all and the app works perfectly, when not built. Does anybody have this same experience and problem? If so, does anyone came up with a solution? I would greatly appreciate any help. Thanks a lot

 

7 Replies

  • Yep, can confirm that I've started seeing this error but not had much of a chance to explore further. Hopefully someone can shed some light on it.

    I personally have found 'Build and Run' to fail for a number of different reasons on various projects (often for Shader compilation issues) so have got into the habit of just doing a Build (which completes successfully) and then running manually.

    • Nihilior's avatar
      Nihilior
      Explorer

      Hey,

      thanks a lot for the reply. So you just build the APK and deploy it to the Quest3? How do you do that, with SideQuest? Have you tried to run the application on the Quest after you built it and deployed it?
      Thanks again

      • I'm currently focusing on PCVR so I just run the exe, but yes for a standalone VR project you could just use SideQuest or write yourself a quick bat file. While the Quest is connected you should just be able to run a command like 

        adb install "C:\Path to Package\package.apk"

         

  • Hey Nihilior,

    Thanks for bringing this to our attention, I came across this issue recently too when using Unity 2022.3.0.
    I believe the faulty piece is the Unity component `SortingGroup` within the `[BB] Hand Ray` prefab. I inspected the Unity changelong and it looks like this bug could cause it: https://issuetracker.unity3d.com/issues/gameobjects-with-sortinggroup-is-dirty-after-loading

    I updated my project to the latest Unity 2022.3.46f and could successfully build.
    Please let me know which version were you using and if this fixes your problem!



    • Nihilior's avatar
      Nihilior
      Explorer

      Hey Luca,

      thanks a lot for your reply. I am using the 2022.3.4f1 version of the Unity Editor. I will try to update the project and let you know if the problem persists. Best regards!

      • MetaQuestSupport's avatar
        MetaQuestSupport
        Community Manager

        Hey there,

         

        Thanks for posting in our forum. We're very happy you've gotten some support but if this doesn't work for you, please send us a PM and we'll see what we can do to help! To do this, please select our name to get to our profile page. Next, click "Send a Message" to privately message us! Please remember, you must be signed into the community first to send us a private message.

  • Hello,

    When I had this issue back a few months, I did a search on the internet and someone suggested navigating to the folder where this prefab is, finding the package responsible and copy/pasting it into your assets folder. The rationale was that the package was immutable but it could be changed when it was in the assets folder. See if this workaround works for you. Note: it is the package itself you want to copy and paste, not the prefab at the end of the folder.