Crash with Google tiles

Hi,
I keep getting a crash whenever I add a google 3D tiles in Unreal 5.5.3. Cesium 2.13.1. Everything was working fine and all of a sudden this happens every time. I have reinstalled the plugin and updated Unreal (was on 5.5.2). Crash report following

LoginId:bb4fd2bf4be7db6f4a0a2e9f570aac18
EpicAccountId:7c780b6434764bad889639bea5c03201

Unhandled Exception: 0xe06d7363

KERNELBASE
VCRUNTIME140
msvcp140
UnrealEditor_CesiumRuntime!std::basic_string_view<char,std::char_traits >::_Xran()
UnrealEditor_CesiumRuntime!CesiumGltfContent::GltfUtilities::parseGltfCopyright()
UnrealEditor_CesiumRuntime!Cesium3DTilesSelection::TilesetContentManager::finishLoading()
UnrealEditor_CesiumRuntime!Cesium3DTilesSelection::Tileset::updateView()
UnrealEditor_CesiumRuntime!ACesium3DTileset::Tick() [D:\build\U5M\Sync\LocalBuilds\PluginTemp\HostProject\Plugins\CesiumForUnreal\Source\CesiumRuntime\Private\Cesium3DTileset.cpp:2032]
UnrealEditor_Engine
UnrealEditor_Engine
UnrealEditor_Engine
UnrealEditor_Core
UnrealEditor_Core
UnrealEditor_Core
UnrealEditor_Core
UnrealEditor_Engine
UnrealEditor_Engine
UnrealEditor_Engine
UnrealEditor_UnrealEd
UnrealEditor_UnrealEd
UnrealEditor
UnrealEditor
UnrealEditor
UnrealEditor
UnrealEditor
UnrealEditor
kernel32
ntdll

an update. Deleting the cesium-request-cache.sqlite file seems to have fixed it.

2 Likes

Hi were do I find the file? ty

If you’re using Unreal 5.4, the file is at that location:

C:\Users\USERNAME\AppData\Local\UnrealEngine\5.4

The same crash happened to me a few minutes ago,
many thanks rfmotion2!

@rfmotion2 Thanks for reporting this issue! I’m glad folks in this thread were able to find a workaround, but it turns out this is actually an issue with the way we’re parsing glTF copyrights. We expect the string to look like Copyright 1;Copyright 2;Copyright 3, but in some cases the string ends with a trailing semicolon without anything after it. I experienced this crash when coming across a glTF with the copyright string Google;. I’ve submitted a fix for this issue which should be in the next release. If you need the fix now, you can follow our Developer Setup guide to build Cesium for Unreal with the fix-copyright-exception branch of Cesium Native.

OMG JUST created an account to say thank you !!

Hello,
I’m trying to setup a custom build following the Developer Setup guide, but I got an error with configuring cmake. What can I do to fix this error?

1> [CMake] The following packages will be built and installed:
1> [CMake]     ktx:x64-windows-unreal@4.3.2 -- Z:/CesiumBuild/cesium-unreal-samples/Plugins/cesium-unreal/extern/vcpkg-overlays\ktx
1> [CMake] Detecting compiler hash for triplet x64-windows-unreal...
1> [CMake] Compiler found: C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.42.34433/bin/Hostx64/x64/cl.exe
1> [CMake] Restored 0 package(s) from C:\Users\X\AppData\Local\vcpkg\archives in 154 us. Use --debug to see more details.
1> [CMake] Installing 1/1 ktx:x64-windows-unreal@4.3.2...
1> [CMake] Building ktx:x64-windows-unreal@4.3.2...
1> [CMake] Z:\CesiumBuild\cesium-unreal-samples\Plugins\cesium-unreal\extern\vcpkg-overlays\triplets\x64-windows-unreal.cmake: info: loaded overlay triplet from here
1> [CMake] Z:/CesiumBuild/cesium-unreal-samples/Plugins/cesium-unreal/extern/vcpkg-overlays\ktx: info: installing overlay port from here
1> [CMake] -- Fetching https://github.com/KhronosGroup/KTX-Software.git v4.3.2...
1> [CMake] CMake Error at scripts/cmake/vcpkg_execute_required_process.cmake:127 (message):
1> [CMake]     Command failed: "C:/Program Files/Git/cmd/git.exe" -c core.autocrlf=false archive 91ace88675ac59a97e55d0378a6602a9ae6b98bd -o Z:/.ezvcpkg/2024.11.16/downloads/temp/ktx-91ace88675ac59a97e55d0378a6602a9ae6b98bd.tar.gz
1> [CMake]     Working Directory: Z:/.ezvcpkg/2024.11.16/downloads/git-tmp
1> [CMake]     Error code: 128
1> [CMake]     See logs for more information:
1> [CMake]       Z:\.ezvcpkg\2024.11.16\buildtrees\ktx\git-archive-err.log
1> [CMake] 
1> [CMake] Call Stack (most recent call first):
1> [CMake]   scripts/cmake/vcpkg_from_git.cmake:167 (vcpkg_execute_required_process)
1> [CMake]   Z:/CesiumBuild/cesium-unreal-samples/Plugins/cesium-unreal/extern/vcpkg-overlays/ktx/portfile.cmake:1 (vcpkg_from_git)
1> [CMake]   scripts/ports.cmake:196 (include)
1> [CMake] error: building ktx:x64-windows-unreal failed with: BUILD_FAILED

1> [CMake] *** Content of log file: Z:\.ezvcpkg\2024.11.16\buildtrees\ktx\git-archive-err.log:
1> [CMake] Downloading lib/basisu/OpenCL/lib/OpenCL.lib (28 KB)
1> [CMake] Error downloading object: lib/basisu/OpenCL/lib/OpenCL.lib (78fa1d0): Smudge error: Error downloading lib/basisu/OpenCL/lib/OpenCL.lib (78fa1d029af6cf82dadfdfefab82a53720780aa7e04cb20a9385d78fab8a2a1f): batch request: missing protocol: ""
1> [CMake] 
1> [CMake] Errors logged to Z:\.ezvcpkg\2024.11.16\downloads\git-tmp\.git\lfs\logs\20250210T201421.9124688.log
1> [CMake] Use `git lfs logs last` to view the log.
1> [CMake] error: external filter 'git-lfs filter-process' failed
1> [CMake] fatal: lib/basisu/OpenCL/lib/OpenCL.lib: smudge filter lfs failed
1> [CMake] 
1> [CMake] CMake Error at cesium-native/cmake/ezvcpkg/ezvcpkg.cmake:102 (message):
1> [CMake] Call Stack (most recent call first):
1> [CMake]   cesium-native/cmake/ezvcpkg/ezvcpkg.cmake:194 (EZVCPKG_CHECK_RESULTS)
1> [CMake]   cesium-native/cmake/ezvcpkg/ezvcpkg.cmake:286 (EZVCPKG_BUILD)
1> [CMake]   cesium-native/cmake/ezvcpkg/ezvcpkg.cmake:300 (EZVCPKG_FETCH_IMPL)
1> [CMake]   cesium-native/CMakeLists.txt:68 (ezvcpkg_fetch)
1> [CMake] -- Configuring incomplete, errors occurred!
1> 'C:\WINDOWS\system32\cmd.exe' '/c "%SYSTEMROOT%\System32\chcp.com 65001 >NUL && "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe"  -G "Ninja"  -DCMAKE_BUILD_TYPE:STRING="Debug" -DCMAKE_INSTALL_PREFIX:PATH="Z:\CesiumBuild\cesium-unreal-samples\Plugins\cesium-unreal\extern\out\install\x64-Debug" -DCMAKE_C_COMPILER:FILEPATH="C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.36.32532/bin/Hostx64/x64/cl.exe" -DCMAKE_CXX_COMPILER:FILEPATH="C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.36.32532/bin/Hostx64/x64/cl.exe"   -DCMAKE_MAKE_PROGRAM="C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" "Z:\CesiumBuild\cesium-unreal-samples\Plugins\cesium-unreal\extern" 2>&1"' execution failed with error: ''C:\WINDOWS\system32\cmd.exe' '/c "%SYSTEMROOT%\System32\chcp.com 65001 >NUL && "C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\CMake\bin\cmake.exe"  -G "Ninja"  -DCMAKE_BUILD_TYPE:STRING="Debug" -DCMAKE_INSTALL_PREFIX:PATH="Z:\CesiumBuild\cesium-unreal-samples\Plugins\cesium-unreal\extern\out\install\x64-Debug" -DCMAKE_C_COMPILER:FILEPATH="C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.36.32532/bin/Hostx64/x64/cl.exe" -DCMAKE_CXX_COMPILER:FILEPATH="C:/Program Files/Microsoft Visual Studio/2022/Community/VC/Tools/MSVC/14.36.32532/bin/Hostx64/x64/cl.exe"   -DCMAKE_MAKE_PROGRAM="C:\Program Files\Microsoft Visual Studio\2022\Community\Common7\IDE\CommonExtensions\Microsoft\CMake\Ninja\ninja.exe" "Z:\CesiumBuild\cesium-unreal-samples\Plugins\cesium-unreal\extern" 2>&1"' returned with exit code: 1'.

It should no longer be necessary to build Cesium for Unreal yourself, as we’ve now released v2.13.2 with the fix. Please completely close and restart the Epic Launcher if it’s not showing the update yet.

Hi All, I believe I may be getting the same error with Unity, or at least Google Tiles specifically is causing the engine to crash after I zoom in a little. This did not happen the last two weeks. So it may be the same issue.

Is the fix only applied to 5.3+? I’m still getting a crash with 5.2 after updating the plugin just now.

@Kevin_Ring - thanks for pushing out an update for this.

I’m still getting constant crashes on Unreal 5.5.3 with the updated release Cesium 2.13.2 which happens both with Google tiles and tiles from our own Ion server.

Assertion failed: (Index >= 0) & (Index < ArrayNum) [File:C:\Program Files\Epic Games\UE_5.5\Engine\Source\Runtime\Core\Public\Containers\Array.h] [Line: 783] 
Array index out of bounds: 36416 into an array of size 2639


UnrealEditor_CesiumRuntime!Chaos::FTriangleMeshImplicitObject::FTriangleMeshImplicitObject<unsigned short>() [C:\Program Files\Epic Games\UE_5.5\Engine\Source\Runtime\Experimental\Chaos\Public\Chaos\TriangleMeshImplicitObject.h:523]
UnrealEditor_CesiumRuntime!BuildChaosTriangleMeshes<unsigned short>() [C:\DP\XRPresentationTool\Plugins\CesiumForUnreal\Source\CesiumRuntime\Private\CesiumGltfComponent.cpp:3663]
UnrealEditor_CesiumRuntime!loadPrimitive<CesiumGltf::AccessorView<unsigned short> >() [C:\DP\XRPresentationTool\Plugins\CesiumForUnreal\Source\CesiumRuntime\Private\CesiumGltfComponent.cpp:1742]
UnrealEditor_CesiumRuntime!loadIndexedPrimitive() [C:\DP\XRPresentationTool\Plugins\CesiumForUnreal\Source\CesiumRuntime\Private\CesiumGltfComponent.cpp:1793]
UnrealEditor_CesiumRuntime!loadPrimitive() [C:\DP\XRPresentationTool\Plugins\CesiumForUnreal\Source\CesiumRuntime\Private\CesiumGltfComponent.cpp:1863]
UnrealEditor_CesiumRuntime!loadMesh() [C:\DP\XRPresentationTool\Plugins\CesiumForUnreal\Source\CesiumRuntime\Private\CesiumGltfComponent.cpp:1893]
UnrealEditor_CesiumRuntime!loadNode() [C:\DP\XRPresentationTool\Plugins\CesiumForUnreal\Source\CesiumRuntime\Private\CesiumGltfComponent.cpp:2140]
UnrealEditor_CesiumRuntime!`loadModelAnyThreadPart'::`2'::<lambda_1>::operator()() [C:\DP\XRPresentationTool\Plugins\CesiumForUnreal\Source\CesiumRuntime\Private\CesiumGltfComponent.cpp:2325]
UnrealEditor_CesiumRuntime!async::detail::task_func<CesiumAsync::CesiumImpl::ImmediateScheduler<CesiumAsync::CesiumImpl::TaskScheduler>,async::detail::continuation_exec_func<CesiumAsync::CesiumImpl::ImmediateScheduler<CesiumAsync::CesiumImpl::TaskScheduler>,() [C:\DP\XRPresentationTool\Plugins\CesiumForUnreal\Source\ThirdParty\include\async++\task_base.h:398]
UnrealEditor_CesiumRuntime!CesiumAsync::CesiumImpl::ImmediateScheduler<CesiumAsync::CesiumImpl::TaskScheduler>::schedule() [C:\DP\XRPresentationTool\Plugins\CesiumForUnreal\Source\ThirdParty\include\CesiumAsync\Impl\ImmediateScheduler.h:26]
UnrealEditor_CesiumRuntime!async::detail::task_base::run_continuation<CesiumAsync::CesiumImpl::ImmediateScheduler<CesiumAsync::CesiumImpl::TaskScheduler> >() [C:\DP\XRPresentationTool\Plugins\CesiumForUnreal\Source\ThirdParty\include\async++\task_base.h:101]
UnrealEditor_CesiumRuntime!async::detail::basic_task<void>::then_internal<CesiumAsync::CesiumImpl::ImmediateScheduler<CesiumAsync::CesiumImpl::TaskScheduler>,`loadModelAnyThreadPart'::`2'::<lambda_1>,async::task<void> >() [C:\DP\XRPresentationTool\Plugins\CesiumForUnreal\Source\ThirdParty\include\async++\task.h:81]
UnrealEditor_CesiumRuntime!loadModelAnyThreadPart() [C:\DP\XRPresentationTool\Plugins\CesiumForUnreal\Source\CesiumRuntime\Private\CesiumGltfComponent.cpp:2303]
UnrealEditor_CesiumRuntime!UCesiumGltfComponent::CreateOffGameThread() [C:\DP\XRPresentationTool\Plugins\CesiumForUnreal\Source\CesiumRuntime\Private\CesiumGltfComponent.cpp:3293]
UnrealEditor_CesiumRuntime!UnrealPrepareRendererResources::prepareInLoadThread() [C:\DP\XRPresentationTool\Plugins\CesiumForUnreal\Source\CesiumRuntime\Private\UnrealPrepareRendererResources.cpp:49]
UnrealEditor_CesiumRuntime!std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,CesiumUtility::JsonValue,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char()
UnrealEditor_CesiumRuntime!Cesium3DTilesSelection::RasterOverlayCollection::size()
UnrealEditor_CesiumRuntime!CesiumAsync::CesiumImpl::ImmediateScheduler<CesiumAsync::CesiumImpl::TaskScheduler>::schedule() [C:\DP\XRPresentationTool\Plugins\CesiumForUnreal\Source\ThirdParty\include\CesiumAsync\Impl\ImmediateScheduler.h:26]
UnrealEditor_CesiumRuntime!async::detail::task_base::run_continuation<CesiumAsync::CesiumImpl::ImmediateScheduler<CesiumAsync::CesiumImpl::TaskScheduler> >() [C:\DP\XRPresentationTool\Plugins\CesiumForUnreal\Source\ThirdParty\include\async++\task_base.h:101]
UnrealEditor_CesiumRuntime!async::detail::task_base::add_continuation<CesiumAsync::CesiumImpl::ImmediateScheduler<CesiumAsync::CesiumImpl::TaskScheduler> >()
UnrealEditor_CesiumRuntime!async::task<void>::then<async::detail::inline_scheduler_impl,async::detail::unwrapped_func<async::detail::fake_void,async::task<void> > >()
UnrealEditor_CesiumRuntime!Cesium3DTilesSelection::TilesetContentManager::notifyTileUnloading()
UnrealEditor_CesiumRuntime!std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,CesiumUtility::JsonValue,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char()
UnrealEditor_CesiumRuntime!Cesium3DTilesSelection::RasterOverlayCollection::size()
UnrealEditor_CesiumRuntime!CesiumAsync::CesiumImpl::ImmediateScheduler<CesiumAsync::CesiumImpl::TaskScheduler>::schedule() [C:\DP\XRPresentationTool\Plugins\CesiumForUnreal\Source\ThirdParty\include\CesiumAsync\Impl\ImmediateScheduler.h:26]
UnrealEditor_CesiumRuntime!Cesium3DTilesSelection::TilesetContentManager::propagateTilesetContentLoaderResult<Cesium3DTilesSelection::TilesetContentLoader>()
UnrealEditor_CesiumRuntime!std::map<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,CesiumUtility::JsonValue,std::less<std::basic_string<char,std::char_traits<char>,std::allocator<char> > >,std::allocator<std::pair<std::basic_string<char()
UnrealEditor_CesiumRuntime!Cesium3DTilesSelection::RasterOverlayCollection::size()
UnrealEditor_CesiumRuntime!async::detail::task_base::run_continuation<async::detail::inline_scheduler_impl>() [C:\DP\XRPresentationTool\Plugins\CesiumForUnreal\Source\ThirdParty\include\async++\task_base.h:101]
UnrealEditor_CesiumRuntime!Cesium3DTilesSelection::RasterOverlayCollection::size()
UnrealEditor_CesiumRuntime!async::detail::task_base::run_continuations() [C:\DP\XRPresentationTool\Plugins\CesiumForUnreal\Source\ThirdParty\include\async++\task_base.h:113]
UnrealEditor_CesiumRuntime!async::detail::unwrapped_func<Cesium3DTilesSelection::TileLoadResult,async::task<Cesium3DTilesSelection::TileLoadResult> >::operator()()
UnrealEditor_CesiumRuntime!async::detail::task_func<async::detail::inline_scheduler_impl,async::detail::continuation_exec_func<async::detail::inline_scheduler_impl,async::task<Cesium3DTilesSelection::TileLoadResult>,async::detail::fake_void,async::detail::un()
UnrealEditor_CesiumRuntime!async::detail::task_base::run_continuation<async::detail::inline_scheduler_impl>() [C:\DP\XRPresentationTool\Plugins\CesiumForUnreal\Source\ThirdParty\include\async++\task_base.h:101]
UnrealEditor_CesiumRuntime!async::detail::task_base::add_continuation<async::detail::inline_scheduler_impl>() [C:\DP\XRPresentationTool\Plugins\CesiumForUnreal\Source\ThirdParty\include\async++\task_base.h:134]
UnrealEditor_CesiumRuntime!std::uninitialized_fill<std::_List_unchecked_iterator<std::_List_val<std::_List_simple_types<std::pair<unsigned __int64 const ,Cesium3DTilesContent::SubtreeAvailability> > > > * __ptr64,std::_List_unchecked_iterator<std::_List_val<()
UnrealEditor_CesiumRuntime!std::_Variant_destroy_layer_<std::basic_string<char,std::char_traits<char>,std::allocator<char> >,CesiumGeometry::QuadtreeTileID,CesiumGeometry::OctreeTileID,CesiumGeometry::UpsampledQuadtreeNode>::~_Variant_destroy_layer_<std::bas()
UnrealEditor_CesiumRuntime!CesiumAsync::CesiumImpl::ImmediateScheduler<CesiumAsync::CesiumImpl::TaskScheduler>::SchedulerScope::~SchedulerScope()
UnrealEditor_CesiumRuntime!`UnrealTaskProcessor::startTask'::`2'::<lambda_1>::operator()() [C:\DP\XRPresentationTool\Plugins\CesiumForUnreal\Source\CesiumRuntime\Private\UnrealTaskProcessor.cpp:10]
UnrealEditor_Core

@gbusdel, we released a fix for Cesium for Unity as well. You need v1.15.2.

@TinTParametrix we only support the three most recent versions of Unreal Engine, so UE 5.3+. Epic doesn’t allow us to publish new versions of the plugin for older versions of Unreal Engine on Fab. We’ve reached out to Google asking them to fix the dodgy copyright that is triggering the bug, so that their tileset will work with older versions of Cesium for Unreal and Unity once again. I don’t know if or when that will happen, though.

@dagillespie that looks unrelated. Are you seeing that error with Google Photorealistic 3D Tiles, or some other tileset? It may be worthwhile to start a new thread.

Thanks - will raise as separate thread - as after some more troubleshooting this actually looks like it may be due to custom tile content.

Thanks very much, this works

@TinTParametrix we have now backported the fix to UE 5.2. Please see here: