Loading Tiles Failing after a little while in Game

I have just launched the Cesium update for our game Glider Sim on Steam. Glider Sim - Earth Online Many users reporting tiles no longer load after a little while in game (after 3 or so minutes). Usually happens after switching scenes back to the main menu or entering back in to the game. Any idea what is going on? And why tiles fail to load?

I get these errors:
[2024-09-19 12:33:54.194] [error] [SqliteCache.cpp:441] database is locked
UnityEngine.Debug:Log (object)
Reinterop.ReinteropInitializer:UnityEngine_Debug_CallLog_FA05wu8x__otZNsgdHTnU9A (intptr) (at ./Library/PackageCache/com.cesium.unity@1.12.0/Runtime/generated/Reinterop.RoslynSourceGenerator/ReinteropInitializer.cs:61505)

[2024-09-19 22:21:56.927] [error] [TilesetContentManager.cpp:1049] An unexpected error occurs when loading tile: Request for https://assets.ion.cesium.com/us-east-1/asset_depot/1/CesiumWorldTerrain/v1.2/5/37/22.terrain?v=1.2.0&extensions=octvertexnormals-metadata failed: Unable to complete SSL connection
UnityEngine.Debug:Log (object)
Reinterop.ReinteropInitializer:UnityEngine_Debug_CallLog_FA05wu8x__otZNsgdHTnU9A (intptr) (at ./Library/PackageCache/com.cesium.unity@1.12.0/Runtime/generated/Reinterop.RoslynSourceGenerator/ReinteropInitializer.cs:61505)
CesiumForUnity.Cesium3DTileset:Update () (at ./Library/PackageCache/com.cesium.unity@1.12.0/Runtime/generated/Reinterop.RoslynSourceGenerator/Cesium3DTileset-generated.cs:606)

Also. After I exit play mode after the errors occurred I get spammed this in the console window. Only way to fix it is to restart Unity.

"Exception: Request for https://api.cesium.com/v1/defaults failed: Cannot resolve destination host
UnityEngine.Debug:LogError (object)
Reinterop.ReinteropInitializer:UnityEngine_Debug_CallLogError_FA05wu8x__otZNsgdHTnU9A (intptr) (at ./Library/PackageCache/com.cesium.unity@1.12.0/Editor/generated/Reinterop.RoslynSourceGenerator/ReinteropInitializer.cs:6463)
CesiumForUnity.CesiumIonSession:Tick () (at ./Library/PackageCache/com.cesium.unity@1.12.0/Editor/generated/Reinterop.RoslynSourceGenerator/CesiumIonSession-generated.cs:582)
CesiumForUnity.CesiumEditorUtility:UpdateIonSession () (at ./Library/PackageCache/com.cesium.unity@1.12.0/Editor/CesiumEditorUtility.cs:26)
UnityEditor.EditorApplication:Internal_CallUpdateFunctions ()

I also notice the “Use Existing Token” breaks and drop down no longer works. No tokens are displayed. The only way to fix the issue is to restart Unity. Or restart the Game.

Hi @5DRealities,

That’s a frustrating issue. Unfortunately I’m not sure from a glance what could be wrong. Could you please share more information so we can diagnose this?

  • What versions of the Unity Editor + Cesium for Unity are you using?
  • How have you installed the plugin? Did you install it through the Package Manager? Or did you build it yourself from Github?
  • What datasets are you using? I see that you’re getting an error for Cesium World Terrain in your log, but the website you linked mentions Google Photorealistic 3D Tiles.

Can you also confirm whether you’ve upgraded your Cesium ion account from the Community level to a higher tier?

Hi, yes this a frustrating issue. I still am getting many messages from users saying the data drops out mid game session.

-I am using Unity Version 2022.3.46
-Yes, I installed through Package Manager. Latest version 1.12.0
-I am using Bing Maps for our coordinate selection screen and Google 3D Tiles for the in-game scenery.
-I have upgraded to the Commercial Tier a couple months ago.

The data will fail to load usually after a scene change when going back to the Bing Map selection screen. Or sometimes when entering back into the game with the Google Photorealistic tiles. It usually always occurs with in 3 to 4 scene switches.

Also another thing I noticed in the latest version. Clicking “Google Photorealstic 3D Tiles”
Does nothing. And then clicking “Cesium World Terrain + Bing Maps Aerial” then adds “Google Photorealstic 3D Tiles” to the scene.

Perhaps an array reference is off by 1?

Are you all using OpenXR by any chance? Apparently there is (was?) some drama with OpenXR inexplicably disabling Unity’s internet access:

I’m kind of grasping at straws here. It’s a very strange (and frustrating!) problem.

Also another thing I noticed in the latest version. Clicking “Google Photorealstic 3D Tiles”
Does nothing. And then clicking “Cesium World Terrain + Bing Maps Aerial” then adds “Google Photorealstic 3D Tiles” to the scene.

This is unfortunately a known problem on high-DPI displays. Unity’s ScrollView control, which we are using on that panel, apparently doesn’t account for DPI correctly when determining where the user clicked. It’s usually possible to click the right thing with a little bit of patience and resizing of the window. It’s really annoying, but I don’t know of any way to fix it short of rewriting the panel to avoid using that control.

I have seen the OpenXR issue when working with the Meta Quest, but that is only for Android. We are running on Steam / Windows builds. And OpenXR is not running when starting the game in standard flatscreen mode. Plus I get a solid connection for the first couple minutes, then later the connection to the Cesium server eventually drops out.

This is unfortunately a known problem on high-DPI displays. Unity’s ScrollView control, which we are using on that panel, apparently doesn’t account for DPI correctly when determining where the user clicked. It’s usually possible to click the right thing with a little bit of patience and resizing of the window. It’s really annoying, but I don’t know of any way to fix it short of rewriting the panel to avoid using that control

I don’t think DPI is the issue here, as I can hover over the buttons with my mouse and they show the correct tool tip. But then I click the appropriate “+” button and they do the action as mentioned above.

I have seen the OpenXR issue when working with the Meta Quest, but that is only for Android. We are running on Steam / Windows builds. And OpenXR is not running when starting the game in standard flatscreen mode. Plus I get a solid connection for the first couple minutes, then later the connection to the Cesium server eventually drops out.

I think it could be worth disabling OpenXR completely just out of an abundance of caution, but I agree it’s not too likely that is the problem.

Which leaves me with not a lot of ideas. Anything that you (or anyone here) can do to help me reproduce the problem myself so that I can investigate would be a huge help!

I don’t think DPI is the issue here, as I can hover over the buttons with my mouse and they show the correct tool tip. But then I click the appropriate “+” button and they do the action as mentioned above.

Yep, understood, and I see the same thing. However, when I change my monitor’s scaling factor to 100% (from its usual 150%) the problem goes away. I can’t swear DPI is the issue, nor can I explain why the hover indicator works fine while clicking does not, but that is currently my best understanding as to the source of the problem (specifically: a bug in Unity related to DPI or perhaps scaling).

My best guess to reproduce the issue is to set up a project with at least two scenes with Google Photorealistic Tiles. Then fly around the terrain for a couple min, then load the other scene, fly around the scene some, then do it again. Load back to the other scene and fly around again. Eventually the terrain data from the cesium servers is going to fail. That is what we are seeing in our project.

If you can create such a project, and if it does in fact fail after a little while for you, we will be happy to take a look at it.