Latest Cesium update refuses to build and crashes

Is there a way to implement some sort of plugin version control? I had a working project that compiled properly a month or so back (after spending a few months with it not being able to compile). Now when I updated to the latest Cesium plugin build and go back to it, it refuses to compile.

For a test I created a new 4.27 project - it compiles. I add the Cesium plugin - it compiles. I try to add a Cesium asset to the map, it asks for a token, and when I click on the create token button, Cesium hard crashes Unreal.

Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000000

UE4Editor_CesiumEditor!CesiumIonClient::Connection::createToken()
UE4Editor_CesiumEditor!<lambda_ff40746f3747dd0a512cf6f583c38994>::operator()() [D:\build\U5M-Marketplace\Sync\LocalBuilds\PluginTemp\HostProject\Plugins\CesiumForUnreal\Source\CesiumEditor\Private\SelectCesiumIonToken.cpp:415]
UE4Editor_CesiumEditor!SelectCesiumIonToken::UseOrCreate() [D:\build\U5M-Marketplace\Sync\LocalBuilds\PluginTemp\HostProject\Plugins\CesiumForUnreal\Source\CesiumEditor\Private\SelectCesiumIonToken.cpp:442]
UE4Editor_CesiumEditor!TBaseSPMethodDelegateInstance<0,SelectCesiumIonToken,0,FReply __cdecl(void),FDefaultDelegateUserPolicy>::Execute() [D:\RocketSync\4.27.0-17155196+++UE4+Release-4.27\Working\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:290]
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_ApplicationCore
UE4Editor_ApplicationCore
UE4Editor_ApplicationCore
UE4Editor_ApplicationCore
user32
user32
UE4Editor_ApplicationCore
UE4Editor
UE4Editor
UE4Editor
UE4Editor
UE4Editor
UE4Editor
kernel32
ntdll

It would be nice to be able to roll back to a working version of the plugin instead of having to dev stuff in fits and starts due to plugin instability.

Hi, sorry you’re having trouble. I’ve tried to reproduce your token crash, but haven’t had any luck. Can you tell us more about your setup? What platform are you on? Are any other plugins active? Is Cesium for Unreal installed as an engine plugin, or is it installed in your project?

Unfortunately Epic doesn’t provide a way to get older releases from the Marketplace. But if you want to try reverting to an older release, you can find every version we’ve ever released on the Releases page on GitHub:

You just need to download the appropriate ZIP and extract to C:\Program Files\Epic Games\UE_4.27\Engine\Plugins\Marketplace or equivalent on your system. You should delete or uninstall the previous version first.

It doesn’t happen too often, but sometimes, upgrading to a new Cesium for Unreal release will need to modify your Cesium objects, such as Cesium3DTileset or CesiumGeoreference. And in that case, you may run into problems when later downgrading. The solution here is source / version control on your project itself. Tag a particular version of your code/assets that you know to work with a particular version of the Cesium for Unreal plugin, and you should always be able to go back to it any time. If a version that was previously known to work isn’t working anymore, something presumably changed on your computer that is causing problems. As with any Unreal plugin (especially code plugins), it’s a really good idea to back up (or tag) your project before upgrading to a new version.

Kevin

The machine is an MSI Aegis RS, 3070 card. The project runs perfectly fine in Unreal, it just won’t compile. Is there a list of Cesium objects that need to be repaired and modified on new updates and can I trust the version numbering listed in the Unreal plugins page? I have comprehensive project backups but would prefer to keep Cesium up to date from the launcher if possible. It would just be nice to not have to backtrack and repair everything every time something gets updated.

The project runs perfectly fine in Unreal, it just won’t compile.

I’m not sure what you mean by this. Are you seeing compiler errors? You shared a stack trace from a crash, but I don’t think you shared any compiler errors. How is it possible to run something that doesn’t compile?

Is there a list of Cesium objects that need to be repaired and modified on new updates and can I trust the version numbering listed in the Unreal plugins page?

Cesium for Unreal aims to preserve backward compatibility and will automatically migrate any objects in your projects as necessary. The manual steps I was referring to are only if you downgrade the Cesium for Unreal version, because - just like with Unreal Engine - older versions of Cesium for Unreal don’t know how to deal with objects that have been upgraded to work with newer versions.

If you’re only ever installing from the Marketplace, then yes, you can trust the version. If you’re building the plugin yourself, including it in your project, or installing pre-release builds from our CI system, then it isn’t necessarily the case that a displayed version of v1.13.2 implies that you’re using the official v1.13.2.

I have comprehensive project backups but would prefer to keep Cesium up to date from the launcher if possible.

Yep, fair enough, and we work hard to ensure that’s possible. Like any software there are sometimes bugs, but it’s quite surprising to hear of things regularly breaking when you upgrade.

Kevin