Engine Crash when using Servertravel/Open on TransitionMap set in DefaultEngine.ini

Branch: ‘Binary’ build from Unreal Launcher

Build version: 4.7.1

Detailed description of issue: Topic says it all, if you use ServerTravel / Open console commands with same map set in DefaultEngine under TransitionMap= engine crashes.

Thought I report it as engine crashes should never be something to just happen even when you mess up.

Repro Steps:

  1. Create blank project.
  2. save map
  3. set map as transition map
  4. create custom GameMode and have “UseSeamlessTravel” checked (use it either in WorldOverride or DefaultProject Gamemode)
  5. play map in editor
  6. use servertravel in console

So I did some more testing. A very important part seems to be that you actually play map in editor that is 1. transition map and 2. map with useseamlesstravel. If you press play while on another map you can travel just fine…also, only “ServerTravel” crashes while “Open” worked in my recent testing (guess “Open” does not even consider using seamlesstravel). I zipped my test project and updated steps nessessary to reproduce crash.
Remember if you reopen a project you have to switch to map first as it is not default map for UE to open!


Unknown exception - code 00000001 (first/second chance not available)

Ensure condition failed: !ActorComponent->IsRegistered() || ActorComponent->GetScene() != this [File:D:\BuildFarm\buildmachine_++depot+UE4-Releases+4.7\Engine\Source\Runtime\Renderer\Private\RendererScene.cpp] [Line: 1822] 
Component Name: Scene

KERNELBASE + 37901 bytes
UE4Editor_Core!NewReportEnsure() + 19 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\core\private\windows\windowsplatformcrashcontext.cpp:390]
UE4Editor_Core!FDebug::EnsureFailed() + 700 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\core\private\misc\outputdevice.cpp:347]
UE4Editor_Renderer!FScene::Release() + 555 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\renderer\private\rendererscene.cpp:1818]
UE4Editor_Engine!UWorld::FinishDestroy() + 171 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\engine\private\world.cpp:436]
UE4Editor_CoreUObject!UObject::ConditionalFinishDestroy() + 450 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\obj.cpp:593]
UE4Editor_CoreUObject!StaticAllocateObject() + 2479 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1800]
UE4Editor_CoreUObject!StaticConstructObject() + 785 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:2226]
UE4Editor_CoreUObject!StaticDuplicateObjectEx() + 583 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1431]
UE4Editor_CoreUObject!StaticDuplicateObject() + 368 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1391]
UE4Editor_UnrealEd!UEditorEngine::CreatePIEWorldByDuplication() + 1223 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\editor\unrealed\private\playlevel.cpp:3310]
UE4Editor_Engine!FSeamlessTravelHandler::SeamlessTravelLoadCallback() + 355 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\engine\private\world.cpp:4192]
UE4Editor_Engine!TBaseRawMethodDelegateInstance<0,FSeamlessTravelHandler,void __cdecl(FName const & __ptr64,UPackage * __ptr64)>::ExecuteIfSafe() + 14 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\core\public\delegates\delegateinstancesimpl_variadics.inl:582]
UE4Editor_CoreUObject!FAsyncPackage::FinishObjects() + 945 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\serialization\asyncloading.cpp:894]
UE4Editor_CoreUObject!FAsyncPackage::Tick() + 972 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\serialization\asyncloading.cpp:360]
UE4Editor_CoreUObject!ProcessAsyncLoading() + 621 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\coreuobject\private\serialization\asyncloading.cpp:1111]
UE4Editor_Engine!UWorld::Tick() + 1543 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\engine\private\leveltick.cpp:1065]
UE4Editor_UnrealEd!UEditorEngine::Tick() + 5618 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\editor\unrealed\private\editor.cpp:1329]
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() + 22 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\editor\unrealed\private\unrealedengine.cpp:347]
UE4Editor!FEngineLoop::Tick() + 4179 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\launch\private\launchengineloop.cpp:2257]
UE4Editor!GuardedMain() + 1404 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\launch\private\launch.cpp:142]
UE4Editor!GuardedMainWrapper() + 26 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() + 249 bytes [d:\buildfarm\buildmachine_++depot+ue4-releases+4.7\engine\source\runtime\launch\private\windows\launchwindows.cpp:202]
UE4Editor!__tmainCRTStartup() + 329 bytes [f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c:618]

Hi drUniversalis,

I wasn’t able to reproduce this crash. I created a new blank project, made a New Level and saved it as TransitionMap, then set that map to be Transition Map in project’s defaultengine.ini. Am I missing any steps? What are you putting in defaultengine.ini, specifically? And what are you typing for your console command? Thanks!

Yeah I should have checked that. Removing map did fix my crash, but it was not problem in first place…classic. I am pinning cause down as we speak. I edited my answer with crash log, i guess i could just look in code instead of trial n error.

has to do with either having a custom GameMode or GameInstance…

Got it, you have to have a custom GameMode and have “SeamlessTravel” checked in it.

Okay, so if I have a map with a custom GameMode that has Seamless Travel enabled, and I use ServerTravel to move to another map, I have no issues. If I then try to use ServerTravel to move back to another map, I get a crash because second map didn’t have Seamless Travel enabled. It does not seem to matter if I have a transition map set, or if I try to travel to that transition map.

I’ll be writing that bug report up shortly, but it sounds like you’re getting something different if you’re crashing on first ServerTravel or Open command. Can you give me step-by-step instructions to reproduce in a new project, or would you be able to set up a small test project with which this crash occurs and upload it somewhere for me? Thanks!

I’ve entered bug I mentioned as UE-11271, for reference.

Did some more testing and updated my report, thanks for sticking with me. Also, where can I find bug report you mentioned? Not yet familiar with all that stuff here :).

For right now, bug reports aren’t public, and we post numbers here so we can reference them as people ask for updates or research other bugs. There has been some talk about making them public, but there’s no set date for when that might happen.

I’ll take a look at test project shortly. Thanks for putting that up!

I did a quick test in your project (which looks pretty much like mine). I opened NewMap. I saw that it was set as Transition Map in Project Settings. It did NOT have GameMode set. During PIE, I used console command, “ServerTravel newmap” and it crashed with;

Ensure condition failed: !ActorComponent->IsRegistered() || ActorComponent->GetScene() != this [File:D:\BuildFarm\buildmachine_++depot+UE4-Releases+4.7\Engine\Source\Runtime\Renderer\Private\RendererScene.cpp] [Line: 1822]
Component Name: Scene

So it doesn’t seem to matter whether Seamless Travel is turned on for that crash (which is a different crash then one I already reported). I think it’s more trying to ServerTravel to map you’re already on, and being Transition Map is probably part of that as well. I’m going to do a quick check to see if I can eliminate anything else. Can you confirm that’s what’s happening on your end? Thanks!

you missed that NewGameMode is default in project settings, disable it and travel should work fine, also it happens on any servertravel command (like servertravel entry)

It wasn’t set as default game mode in Project Settings when I checked. So you’re seeing it if you ServerTravel to any map?

it is for sure set in zipped project i uploaded, just checked. I think you are getting a not related display bug here…does default gamemode state “none”? Try to reopen fresh project and/or files in it, at some point there should be “NewGameMode” in default project settings. When you change it to default value “GameMode” servertravel should work fine again.

Okay, yea, it was showing None, but setting it to NewGameMode has same crash. I’m going to check this in a fresh project and in our internal build real quick and then probably enter a bug report for it.

Okay, in addition to first bug I entered (UE-11271), I was able to reproduce same crash you were getting and entered another bug for that (UE-11391). I tested in 4.7.2 as well as our internal build. I believe two are related, and I noted that in bug report. I’ll let you know when I see any update on either. Thanks for helping me get to bottom of this!

you’re welcome, all hail this epic engine :slight_smile:

As an update for this, currently Seamless Travel is disabled for Single Process PIE. It caused too many crashes and problems. Attempting to use Seamless Travel in PIE will result in following log:

“LogWorld:Warning: UWorld::ServerTravel: Seamless travel currently NOT supported in single process PIE.”

is there any plan to allow Seamless travel in PIE?

it would have save some time for development testing

Hey Muzaheed,

We have a bug in our system for just that: Unreal Engine Issues and Bug Tracker (UE-20182)

You can keep up with status of it by using that link and voting for issue.

Have a great day