Not signed in
Copyright © 2026 Unity Technologies
Thank you for reporting a bug to Unity. We have reviewed the issue carefully, and in this case, the team is unable to prioritize fixing this bug. There are a number of reasons we make this decision, including the impact and severity of the issue across our user and customer base, the possibility that future plans may solve the problem differently, and that a workaround for the bug is available. Today we will be closing this case. Thank you again for taking the time to report this issue, and please let us know if there is anything else that changes the impact or severity of this issue.
Reproduction steps:
1. Open the attached project “LibdlTest.zip”
2. Open “Assets/Scenes/SampleScene.unity” scene
3. Click File > Build Settings…
4. Click “Add Open Scenes”
5. Select the “Development Build” checkbox
6. Click “Build And Run”
Expected results: Player is run without any errors in the development console, and there are no “Fallback handler could not load library” errors in Player.log
Actual results: The development console shows a “DllNotFoundException” error when the Player is run, additionally you can also see “Fallback handler could not load library” in the Player.log (see the logs below)
Reproducible with: 2021.3.34f1, 2022.3.17f1, 2023.2.0a22 (has “Fallback handler could not load library” error), 2023.2.0a23, 2023.2.7f1, 2023.3.0b4 (doesn’t have the “Fallback handler could not load library” error)
Reproduced on: Ubuntu 22.04.3
Logs:
Fallback handler could not load library <path/to/project/build>/test_Data/MonoBleedingEdge/x86_64/libdl.so
Fallback handler could not load library <path/to/project/build>/test_Data/MonoBleedingEdge/x86_64/libdl
DllNotFoundException: libdl assembly:<unknown assembly> type:<unknown type> member:(null)
at (wrapper managed-to-native) Silk.NET.Core.Loader.Libdl.dlopen(string,int)
at Silk.NET.Core.Loader.LibraryLoader+UnixLibraryLoader.CoreLoadNativeLibrary (System.String name) [0x00000] in <60b219252eb448c2b8060c9769dd10a2>:0
at Silk.NET.Core.Loader.LibraryLoader.LoadWithResolver (System.String name, Silk.NET.Core.Loader.PathResolver pathResolver) [0x0003b] in <60b219252eb448c2b8060c9769dd10a2>:0
at Silk.NET.Core.Loader.LibraryLoader.TryLoadNativeLibrary (System.String[] names, Silk.NET.Core.Loader.PathResolver pathResolver, System.IntPtr& result) [0x00017] in <60b219252eb448c2b8060c9769dd10a2>:0
at Silk.NET.Core.Loader.LibraryLoader.TryLoadNativeLibrary (System.String name, Silk.NET.Core.Loader.PathResolver pathResolver, System.IntPtr& result) [0x00000] in <60b219252eb448c2b8060c9769dd10a2>:0
at Silk.NET.Core.Loader.UnmanagedLibrary.TryCreate (System.String name, Silk.NET.Core.Loader.LibraryLoader loader, Silk.NET.Core.Loader.PathResolver pathResolver, Silk.NET.Core.Loader.UnmanagedLibrary& library) [0x00000] in <60b219252eb448c2b8060c9769dd10a2>:0
at Silk.NET.Core.Contexts.DefaultNativeContext.TryCreate (System.String name, Silk.NET.Core.Contexts.DefaultNativeContext& context) [0x0000b] in <60b219252eb448c2b8060c9769dd10a2>:0
at Silk.NET.Assimp.Assimp.CreateDefaultContext (System.String[] n) [0x00006] in <5427bd99fee74d529b57dc204b026d9d>:0
at Silk.NET.Assimp.Assimp.GetApi () [0x0000a] in <5427bd99fee74d529b57dc204b026d9d>:0
at MainScript.Start () [0x00001] in </path/to/project>/Assets/MainScript.cs:10
Workaround for “DllNotFoundException”: copy local libdl.so.2 file found with ‘whereis libdl.so2’ command to the directory where the “Fallback handler could not load library“ error is happening. For example:
$ whereis libdl.so.2
libdl.so.2: /usr/lib/x86_64-linux-gnu/libdl.so.2 /usr/lib32/libdl.so.2
$ cp /usr/lib/x86_64-linux-gnu/libdl.so.2 <project build directory>/test_Data/MonoBleedingEdge/x86_64/libdl && cp /usr/lib/x86_64-linux-gnu/libdl.so.2 <project build directory>/test_Data/MonoBleedingEdge/x86_64/libdl.so && cp /usr/lib/x86_64-linux-gnu/libdl.so.2 <project build directory>/test_Data/MonoBleedingEdge/x86_64/libdl.so.2
Note: from 2023.2.0a23 versions, the “Fallback handler could not load library” disappears, and only “DllNotFoundException: libdl” remains which can be fixed with the previous workaround.
Sign in to see your voted issues