Error: Plugin 'CesiumForUnreal' failed to load

I have project that uses Cesium. I need it to work on Windows and MacOs.
I use Jenkins to build executable for both platforms
It works for windows without any issue
But fails on Mac with error:
LogPluginManager: Error: Plugin ‘CesiumForUnreal’ failed to load because module ‘CesiumRuntime’ could not be loaded. There may be an operating system error or the module may not be properly set up.

I have m1 Mac. UE version 5.3.2, Cesium version 2.6.0
I’ve tried to reinstall UE and plugins, have tried clean Mac.

I can’t find what am I missing to build it on Mac

Windows build command:
& “C:\Program Files\Epic Games\UE_5.3\Engine\Build\BatchFiles\RunUAT.bat” BuildCookRun -project=“$ENV:WORKSPACE\CommsInfrastructure\CommsInfrastructure.uproject” -platform=Win64 -pak -build -cook -stage -stagingdirectory=“$STAGING_DIR” -archive -archivedirectory=“$ARCHIVE_DIR” -prereqs -package

Mac build command:
“$UE_PATH/Engine/Build/BatchFiles/RunUAT.sh” BuildCookRun -project=“$PROJECT_PATH/CommsInfrastructure.uproject” -UpdateIfNeeded -platform=Mac -pak -build -cook -stage -stagingdirectory=“$STAGING_DIR” -archive -archivedirectory=“$ARCHIVE_DIR” -prereqs -package

Hi @Andrei_Kiparuk, welcome to the community!
How have you installed the Cesium for Unreal plugin? Is it from the Epic Launcher?
It may help to see your complete log. The “failed to load” error may be the result of an earlier problem.

@Kevin_Ring, Thank you!
I’ve installed it from Epic Launcher, found it was installed into Marketplace folder.
here is full log:

[CI-Mac-test] $ /bin/bash /var/folders/5n/mm368qjs40s011rj5ht_ld080000gn/T/jenkins5633712660806031646.sh

Running AutomationTool...

Running bundled mono, version: Mono JIT compiler version 5.16.0.220 (2018-06/bb3ae37d71a Fri Nov 16 17:12:11 EST 2018)
Setting up bundled DotNet SDK
/Users/Shared/Epic Games/UE_5.3/Engine/Build/BatchFiles/Mac/../../../Binaries/ThirdParty/DotNet/6.0.302/mac-arm64
Start UAT Interactively: dotnet AutomationTool.dll BuildCookRun -project=/Users/akiparuk/Downloads/Jenkins/workspace/CI-Mac-test/CommsInfrastructure/CommsInfrastructure.uproject -UpdateIfNeeded -platform=Mac -pak -compressed -build -cook -stage -stagingdirectory=/Users/akiparuk/Downloads/Jenkins/workspace/CI-Mac-test/builds/SeriousGaming/CommsInfrastructure/37/stage -archive -archivedirectory=/Users/akiparuk/Downloads/Jenkins/workspace/CI-Mac-test/builds/SeriousGaming/CommsInfrastructure/37/archive -prereqs -package
/Users/Shared/Epic Games/UE_5.3/Engine/Build/BatchFiles/Mac/../../../Binaries/ThirdParty/DotNet/6.0.302/mac-arm64/dotnet
Starting AutomationTool...
Parsing command line: BuildCookRun -project=/Users/akiparuk/Downloads/Jenkins/workspace/CI-Mac-test/CommsInfrastructure/CommsInfrastructure.uproject -UpdateIfNeeded -platform=Mac -pak -compressed -build -cook -stage -stagingdirectory=/Users/akiparuk/Downloads/Jenkins/workspace/CI-Mac-test/builds/SeriousGaming/CommsInfrastructure/37/stage -archive -archivedirectory=/Users/akiparuk/Downloads/Jenkins/workspace/CI-Mac-test/builds/SeriousGaming/CommsInfrastructure/37/archive -prereqs -package
Initializing script modules...
Total script module initialization time: 0.22 s.
using /Users/Shared/Epic Games/UE_5.3/Engine/Build/BatchFiles/Mac/../../../Binaries/ThirdParty/DotNet/6.0.302/mac-arm64/dotnet!
Executing commands...
Setting up ProjectParams for /Users/akiparuk/Downloads/Jenkins/workspace/CI-Mac-test/CommsInfrastructure/CommsInfrastructure.uproject
********** COOK COMMAND STARTED **********
Running UnrealEditor Cook for project /Users/akiparuk/Downloads/Jenkins/workspace/CI-Mac-test/CommsInfrastructure/CommsInfrastructure.uproject
Commandlet log file is /Users/Shared/Epic Games/UE_5.3/Engine/Programs/AutomationTool/Saved/Cook-2024.06.15-11.55.09.txt
Running: /Users/Shared/Epic Games/UE_5.3/Engine/Binaries/Mac/UnrealEditor-Cmd "/Users/akiparuk/Downloads/Jenkins/workspace/CI-Mac-test/CommsInfrastructure/CommsInfrastructure.uproject" -run=Cook  -TargetPlatform=Mac  -unversioned -fileopenlog -abslog="/Users/Shared/Epic Games/UE_5.3/Engine/Programs/AutomationTool/Saved/Cook-2024.06.15-11.55.09.txt" -stdout -CrashForUAT -unattended -NoLogTimes
Checking for a '/tmp/UnrealTraceServer.pid' lock file
Existing instance is the same age or newer
2024-06-15 11:55:11.709 UnrealEditor-Cmd[27553:1031514] [UE] Failed to find game directory: /Users/Shared/Epic Games/UE_5.3/CommsInfrastructure/Binaries
LogInit: Display: Running engine for game: CommsInfrastructure
LogCore: Display: Requested channels: 'cpu,gpu,frame,log,bookmark,screenshot,region'
LogCsvProfiler: Display: Metadata set : platform="Mac"
LogCsvProfiler: Display: Metadata set : config="Development"
LogCsvProfiler: Display: Metadata set : buildversion="++UE5+Release-5.3-CL-29314046"
LogCsvProfiler: Display: Metadata set : engineversion="5.3.2-29314046+++UE5+Release-5.3"
LogCsvProfiler: Display: Metadata set : os="macOS 14.5 23F79"
LogCsvProfiler: Display: Metadata set : cpu="Apple|Apple M1 Max"
LogCsvProfiler: Display: Metadata set : pgoenabled="0"
LogCsvProfiler: Display: Metadata set : pgoprofilingenabled="0"
LogCsvProfiler: Display: Metadata set : ltoenabled="0"
LogCsvProfiler: Display: Metadata set : asan="0"
LogCsvProfiler: Display: Metadata set : commandline="" /Users/akiparuk/Downloads/Jenkins/workspace/CI-Mac-test/CommsInfrastructure/CommsInfrastructure.uproject -run=Cook -TargetPlatform=Mac -unversioned -fileopenlog -abslog="/Users/Shared/Epic Games/UE_5.3/Engine/Programs/AutomationTool/Saved/Cook-2024.06.15-11.55.09.txt" -stdout -CrashForUAT -unattended -NoLogTimes""
LogCsvProfiler: Display: Metadata set : loginid="cb9605888c4810d0f2c53eac61e638cb"
LogCsvProfiler: Display: Metadata set : llm="0"
LogPluginManager: Display: By default, prioritizing project plugin (/Users/akiparuk/Downloads/Jenkins/workspace/CI-Mac-test/CommsInfrastructure/Plugins/CesiumForUnreal/CesiumForUnreal.uplugin) over the corresponding engine version (../../../Engine/Plugins/Marketplace/CesiumForUnreal/CesiumForUnreal.uplugin).
LogConfig: Display: Loading IOS ini files took 0.01 seconds
LogConfig: Display: Loading VulkanPC ini files took 0.01 seconds
LogConfig: Display: Loading Mac ini files took 0.01 seconds
LogConfig: Display: Loading TVOS ini files took 0.01 seconds
LogConfig: Display: Loading Unix ini files took 0.02 seconds
LogConfig: Display: Loading Linux ini files took 0.02 seconds
LogConfig: Display: Loading LinuxArm64 ini files took 0.02 seconds
LogConfig: Display: Loading Android ini files took 0.01 seconds
LogConfig: Display: Loading Windows ini files took 0.01 seconds
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/TraceUtilities/Content/' mounted to '/TraceUtilities/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Bridge/Content/' mounted to '/Bridge/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Runtime/ResonanceAudio/Content/' mounted to '/ResonanceAudio/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Runtime/SunPosition/Content/' mounted to '/SunPosition/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Runtime/RigVM/Content/' mounted to '/RigVM/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Runtime/AudioWidgets/Content/' mounted to '/AudioWidgets/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Runtime/Synthesis/Content/' mounted to '/Synthesis/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Runtime/MeshModelingToolset/Content/' mounted to '/MeshModelingToolset/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Runtime/WaveTable/Content/' mounted to '/WaveTable/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Runtime/AudioSynesthesia/Content/' mounted to '/AudioSynesthesia/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Runtime/GeometryProcessing/Content/' mounted to '/GeometryProcessing/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Runtime/Metasound/Content/' mounted to '/Metasound/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/VirtualProduction/Takes/Content/' mounted to '/Takes/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Animation/ControlRigSpline/Content/' mounted to '/ControlRigSpline/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Animation/ACLPlugin/Content/' mounted to '/ACLPlugin/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Animation/ControlRig/Content/' mounted to '/ControlRig/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Animation/IKRig/Content/' mounted to '/IKRig/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Interchange/Runtime/Content/' mounted to '/Interchange/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Developer/AnimationSharing/Content/' mounted to '/AnimationSharing/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Media/MediaPlate/Content/' mounted to '/MediaPlate/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Media/MediaCompositing/Content/' mounted to '/MediaCompositing/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/FX/Niagara/Content/' mounted to '/Niagara/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/MovieScene/SequencerScripting/Content/' mounted to '/SequencerScripting/'
LogPackageName: Display: FPackageName: Mount point added: '../../../../../../akiparuk/Downloads/Jenkins/workspace/CI-Mac-test/CommsInfrastructure/Plugins/CesiumForUnreal/Content/' mounted to '/CesiumForUnreal/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Enterprise/GLTFExporter/Content/' mounted to '/GLTFExporter/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Enterprise/DatasmithContent/Content/' mounted to '/DatasmithContent/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Editor/BlueprintHeaderView/Content/' mounted to '/BlueprintHeaderView/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Editor/UVEditor/Content/' mounted to '/UVEditor/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Editor/GeometryMode/Content/' mounted to '/GeometryMode/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Editor/SpeedTreeImporter/Content/' mounted to '/SpeedTreeImporter/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Editor/ModelingToolsEditorMode/Content/' mounted to '/ModelingToolsEditorMode/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Experimental/Dataflow/Content/' mounted to '/Dataflow/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Experimental/MeshLODToolset/Content/' mounted to '/MeshLODToolset/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Experimental/Water/Content/' mounted to '/Water/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Experimental/PythonScriptPlugin/Content/' mounted to '/PythonScriptPlugin/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Experimental/ChaosNiagara/Content/' mounted to '/ChaosNiagara/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Experimental/ToolPresets/Content/' mounted to '/ToolPresets/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Experimental/Landmass/Content/' mounted to '/Landmass/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Experimental/GeometryFlow/Content/' mounted to '/GeometryFlow/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Experimental/ChaosSolverPlugin/Content/' mounted to '/ChaosSolverPlugin/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Experimental/MeshModelingToolsetExp/Content/' mounted to '/MeshModelingToolsetExp/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Experimental/FullBodyIK/Content/' mounted to '/FullBodyIK/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Experimental/GeometryCollectionPlugin/Content/' mounted to '/GeometryCollectionPlugin/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Experimental/ChaosCaching/Content/' mounted to '/ChaosCaching/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Experimental/ChaosClothEditor/Content/' mounted to '/ChaosClothEditor/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/2D/Paper2D/Content/' mounted to '/Paper2D/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Editor/ObjectMixer/LightMixer/Content/' mounted to '/LightMixer/'
LogPackageName: Display: FPackageName: Mount point added: '../../Plugins/Editor/ObjectMixer/ObjectMixer/Content/' mounted to '/ObjectMixer/'
LogPluginManager: Error: Plugin 'CesiumForUnreal' failed to load because module 'CesiumRuntime' could not be loaded.  There may be an operating system error or the module may not be properly set up.
Took 3.12s to run UnrealEditor-Cmd, ExitCode=1
Cook failed.

I’m afraid I still don’t know what to make of that. Is there anything else after that first “unable to load” that might be relevant? Are you able to package the Cesium for Unreal Samples project on your system?

Also, is this the official UE 5.3.2 build from Epic, or have you built it yourself from source?

yes, I have official UE 5.3.2 build from Epic installed by Epic Launcher.
I also tried to cook examples from market place with the same result.
interesting, the same is working on windows without any issue.

I’m able to cook and pack via Editor(UI) with mouse click on Mac
but not via RunUAT.sh

if to remove plugin from project, I can cook and pack it via RunUAT.sh…

I have no idea what is going on…

looks like command line version has some issues

found this build is working for me

I’ve tried CesiumForUnreal-54-macos-main

no issues with that version.

I hope you will have it posted to market place soon.

We will release that PR in early July, though I can’t really explain why it would cause the problem you’re seeing. One thing I noticed is that you said you’re using UE 5.3.2, but then you linked to the UE 5.4 version of Cesium for Unreal. A version mismatch (using the 5.3 version of Cesium for Unreal in 5.4 or vice-versa) will definitely cause the problem you’re seeing, so it’s something to watch out for.

hm… that’s wired…
looks like 5.4 version works on 5.3.2 in command line without any issue…

https://github.com/CesiumGS/cesium-unreal/actions/runs/9548545780/artifacts/1609203888 that version works without issue too.