# Exception in cesium tileset streaming during construction phase

**URL:** <https://community.cesium.com/t/exception-in-cesium-tileset-streaming-during-construction-phase/44609>\
**Category:** Cesium for Unreal\
**Created:** [December 17, 2025, 3:42am UTC](https://community.cesium.com/t/exception-in-cesium-tileset-streaming-during-construction-phase/44609 "2025-12-17T03:42:55Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![dis\_afise](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/dis_afise/32/28706_2.png) [@dis\_afise](https://community.cesium.com/u/dis_afise)\
**Post date:** [December 17, 2025, 3:42am UTC](https://community.cesium.com/t/exception-in-cesium-tileset-streaming-during-construction-phase/44609/1 "2025-12-17T03:42:55Z")

</div>

Hi Everyone,

I’ve recently upgraded my project from Unreal Engine 5.4 to 5.7, and I’m encountering an issue when running my project from Visual Studio. The exception occurs during the `OnConstruction` stage, specifically related to `CesiumFGltfComponent::CreateOnGameThread` builtin function of tileset. This issue happens only on the **first run** when launching from Visual Studio, and it does not persist once Unreal Engine is open. The exception does not occur if I run the project directly from the Unreal Editor. Has anyone encountered a similar issue after upgrading from UE5.4 to UE5.7. or is there anything I might have missed? I am spawning cesium 3d tilesets in the scene during construction phase(before begin play) via cpp. Any suggestions on how to resolve this would be greatly appreciated.

Thank you!

---

<div class="post-metadata">

**Author:** ![janine](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/janine/32/5135_2.png) [@janine](https://community.cesium.com/u/janine)\
**Post date:** [December 22, 2025, 8:03pm UTC](https://community.cesium.com/t/exception-in-cesium-tileset-streaming-during-construction-phase/44609/2 "2025-12-22T20:03:51Z")

</div>

Hi @dis_afise,

Sorry that you’re running into trouble with the plugin! Could you please share more information with us, including:

- What version of Cesium for Unreal are you using?
- What the exception that you’re running into? A stack trace would be super helpful as well.

It’s possible that this is related to a previously reported bug below, but it would be good to confirm with more details.

> <https://github.com/CesiumGS/cesium-unreal/issues/1189>
>
> \### Environment: 
> \- operating system: win11;
> \- Unreal Engine Version: 5.0.3(th…e bug initially occurred) & 5.2.1(the environment I reproduce this bug);
> \- Cesium-for-Unreal plugin version: 1.29.0;
> 
> \### Background:
> I want to somehow add, load, or change 3d-tiles based on the given custom URL at the game runtime. So, I decided to create my own class derived by the actor class and was going to use a \`Cesium3DTileset\` object as a sort of "component" in my class.
> 
> \### Buggy place
> After I created a blueprint actor class and used the child actor component to wrap a \`Cesium3DTileset\` instance, I was able to achieve my goal. However, when I closed my unreal project and reopened it again, I got my bug after clicking on the corresponding blueprint class, it made the unreal editor crash.
> 
> \- Here is the view of my blueprint actor:
> !\[blueprint-actor-view\](https://github.com/CesiumGS/cesium-unreal/assets/101626570/5e69d562-d153-44f2-a470-c2dd3b6018d0)
> \- Here is the actor's behavior before I reopen my project(can work):
> !\[behavior\](https://github.com/CesiumGS/cesium-unreal/assets/101626570/53a56301-906b-41d8-898d-2d2ecad7bc3e)
> \- Here are the crash logs:
> \`\`\`
> LoginId:b71de044415ee1eb2a475db3d42f7600
> EpicAccountId:ff9b3dd8e7da47bb8233a38088182b71
> 
> Unhandled Exception: EXCEPTION\_ACCESS\_VIOLATION reading address 0x0000000000000448
> 
> UnrealEditor\_CesiumRuntime!TArray\<TScriptDelegate\<FWeakObjectPtr\>,TSizedDefaultAllocator\<32\> \>::Find() \[D:\\RocketSync\\5.2.0-25360045+++UE5+Release-5.2\\Working\\Engine\\Source\\Runtime\\Core\\Public\\Containers\\Array.h:949\]
> UnrealEditor\_CesiumRuntime!TArray\<TScriptDelegate\<FWeakObjectPtr\>,TSizedDefaultAllocator\<32\> \>::AddUniqueImpl\<TScriptDelegate\<FWeakObjectPtr\> const &\>() \[D:\\RocketSync\\5.2.0-25360045+++UE5+Release-5.2\\Working\\Engine\\Source\\Runtime\\Core\\Public\\Containers\\Array.h:2433\]
> UnrealEditor\_CesiumRuntime!ACesium3DTileset::ResolveGeoreference() \[D:\\build\\U5M-Marketplace\\Sync\\LocalBuilds\\PluginTemp\\HostProject\\Plugins\\CesiumForUnreal\\Source\\CesiumRuntime\\Private\\Cesium3DTileset.cpp:143\]
> UnrealEditor\_CesiumRuntime!UCesium3DTilesetRoot::\_updateTilesetToUnrealRelativeWorldTransform() \[D:\\build\\U5M-Marketplace\\Sync\\LocalBuilds\\PluginTemp\\HostProject\\Plugins\\CesiumForUnreal\\Source\\CesiumRuntime\\Private\\Cesium3DTilesetRoot.cpp:91\]
> UnrealEditor\_CesiumRuntime!UCesium3DTilesetRoot::MoveComponentImpl() \[D:\\build\\U5M-Marketplace\\Sync\\LocalBuilds\\PluginTemp\\HostProject\\Plugins\\CesiumForUnreal\\Source\\CesiumRuntime\\Private\\Cesium3DTilesetRoot.cpp:72\]
> UnrealEditor\_Engine
> UnrealEditor\_Engine
> UnrealEditor\_Engine
> UnrealEditor\_Engine
> UnrealEditor\_Engine
> UnrealEditor\_Engine
> UnrealEditor\_Engine
> UnrealEditor\_Engine
> UnrealEditor\_Engine
> UnrealEditor\_Engine
> UnrealEditor\_Engine
> UnrealEditor\_Engine
> UnrealEditor\_Engine
> UnrealEditor\_Engine
> UnrealEditor\_Engine
> UnrealEditor\_Engine
> UnrealEditor\_Engine
> UnrealEditor\_Engine
> UnrealEditor\_Engine
> UnrealEditor\_Kismet
> UnrealEditor\_Kismet
> UnrealEditor\_UnrealEd
> UnrealEditor\_UnrealEd
> UnrealEditor\_UnrealEd
> UnrealEditor
> UnrealEditor
> UnrealEditor
> UnrealEditor
> UnrealEditor
> UnrealEditor
> kernel32
> ntdll
> 
> \`\`\`
> 
> \### Attempted solutions
> I tried to reimplement my class in C++, using \`ACesium3DTileset\*\` to point to a corresponding object as my class member variable, but still got the "EXCEPTION\_ACCESS\_VIOLATION reading address" error. I guess it was related to the \`Cesium3DTileset\` actor's lifecycle and I cannot just use raw pointer. Finally, I wrapped \`Cesium3DTileset\` by creating a blueprint class derived from it, and used that blueprint class as a member variable instead. Then everything worked fine for me.
> 
> \### Finally
> So, I wonder why this bug would happen and how can I combine \`Cesium3DTileset\` actor into my class instead of just wrapping it up if it is possible.

---

<div class="post-metadata">

**Author:** ![dis\_afise](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/dis_afise/32/28706_2.png) [@dis\_afise](https://community.cesium.com/u/dis_afise)\
**Post date:** [March 6, 2026, 4:27am UTC](https://community.cesium.com/t/exception-in-cesium-tileset-streaming-during-construction-phase/44609/3 "2026-03-06T04:27:01Z")

</div>

Thans for responding.I am using cesium 2.23.0. Below are the attached screenshots for the exception:

 ![crash 2.0](https://global.discourse-cdn.com/cesium/original/3X/e/9/e9667aa66b30a84be00a5220e6e1ec8f33bf1592.png)

 ![crash](https://global.discourse-cdn.com/cesium/original/3X/a/2/a2ea4a84716b1af88238bd5c997216d605d13a6d.png)

---

<div class="post-metadata">

**Author:** ![darcyvdd](https://avatars.discourse-cdn.com/v4/letter/d/d9b06d/32.png) [@darcyvdd](https://community.cesium.com/u/darcyvdd)\
**Post date:** [March 6, 2026, 5:19am UTC](https://community.cesium.com/t/exception-in-cesium-tileset-streaming-during-construction-phase/44609/4 "2026-03-06T05:19:29Z")

</div>

Hey @dis_afise,

It _looks_ like this is a known issue within Unreal Engine introduced in UE 5.6.1 where adding Instanced Static Mesh instances in construction scripts can cause that ensure block to be hit. ([Unreal Issue](https://issues.unrealengine.com/issue/UE-348073), [Unreal forum post 1](https://forums.unrealengine.com/t/ensure-triggered-with-instanced-static-mesh-and-navigation-cached-bounds-in-5-6-1/2672586/2), [Unreal forum post 2](https://forums.unrealengine.com/t/ensure-when-adding-single-ism-navigation-element/2613276)).

As to why that only happens in Editor, ensure macros are designed to notify the crash reporter of non-fatal error but continue running, and they only report once per editor session. When you have the debugger (Visual Studio) attached it behaves a little differently and triggers a breakpoint unlike when you’re using the Unreal Editor Directly. You can checkout the docs on ensure [here](https://dev.epicgames.com/documentation/en-us/unreal-engine/asserts-in-unreal-engine#ensure).

If this isn’t causing any unexpected behaviour, you are _probably_ safe to ignore it, alternatively you could move your spawning of cesium 3d tilesets from construction to beginplay if your use case allows it.

Hope that helps!

---

<div class="post-metadata">

**Author:** ![janine](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/janine/32/5135_2.png) [@janine](https://community.cesium.com/u/janine)\
**Post date:** [March 6, 2026, 4:03pm UTC](https://community.cesium.com/t/exception-in-cesium-tileset-streaming-during-construction-phase/44609/6 "2026-03-06T16:03:28Z")

</div>

@darcyvdd glad that one of us has eagle eyes! I almost overlooked the `UInstancedStaticMeshComponent` mention in the callstack. Based on that, I’m inclined to think it’s related to that issue you linked.

But just in case @dis_afise, we’d appreciate any minimal reproduction steps to walk through what you’re doing, including a snippet of your C++ code. If you’re willing to share the tileset that is causing this problem, that would be helpful too.

---

<div class="post-metadata">

**Author:** ![dis\_afise](https://sea2.discourse-cdn.com/cesium/user_avatar/community.cesium.com/dis_afise/32/28706_2.png) [@dis\_afise](https://community.cesium.com/u/dis_afise)\
**Post date:** [March 9, 2026, 6:26am UTC](https://community.cesium.com/t/exception-in-cesium-tileset-streaming-during-construction-phase/44609/7 "2026-03-09T06:26:23Z")

</div>

I have updated my cesium version. It seems to be gone for now.
