Skip to content

Runtime crash related to CesiumIonServer in a packaged game when tilesets are _only_ created at runtime #1507

Closed
@kring

Description

@kring

Reported here:
https://community.cesium.com/t/fatal-error-while-spawning-cesium3dtileset/34641

When a Cesium3DTileset is added via the Editor, it will have a reference to a CesiumIonServer instance (usually the default SaaS one) and so Unreal will know to automatically include this instance in a packaged game.

However, if your level does not have a Cesium3DTileset, but then you add one at runtime, Unreal won't know that the CesiumIonServer instance is required, and so it won't include it in the packaged game. As a result, the reference will be nullptr and the game will crash with an access violation.

This can be worked around by explicitly telling Unreal to include the CesiumIonServer. But it manifests as a mysterious crash to users, which is not great. We should address this by doing one or more of the following:

  1. Tell the user at runtime that this is a problem and fail gracefully instead of crashing with an access violation.
  2. Handle the possibility that there is no CesiumIonServer at runtime, and create one on the fly (like we already do in the Editor).
  3. Always force the CesiumIonServer to be included in packaged games even if it doesn't appear to be used.

We should also consider if there are other assets that will be missing in this scenario.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions