A recent change in World Partition added actor pinning during the save process to
try to ensure that those actors do not get unloaded after saving. This involves
dirtying the WorldFolders object that lives in the /Engine/Transient package and
ends up triggering another package dirty event that invokes
FConcertWorkspaceUI::OnMarkPackageDirty(). The dirtying of that package
should have been ignored for the purposes of Multi-User, but the call to
ShouldIgnorePackageDirtyEvent() to determine that came after the call
to HasLiveTransactionSupport(). The latter ends up reading class paths off
of the IncludeObjectClassFilters property of UConcertSyncConfig and then
attempts to load those classes using TryLoadClass(). This eventually invoked
a call to StaticFindObjectFast(), but since we are in the middle of a package
save at this point, we ended up triggering a fatal log message.
To address this, we simply perform the check to determine whether a package
dirty event should be ignored before we check whether there is live transaction
support for the package.
#jira UE-153112
#rb jason.walter
#preflight 62911f66a84d43e1a0bab136
[CL 20397436 by matt johnson in ue5-main branch]
Sequencer: Follow up to ToolMenus for multi user sequencer buttons
#jira UE-152817
#rb Max.Chen
[FYI] Max.Chen, anthony.tominia
#ROBOMERGE-OWNER: mike.beach
#ROBOMERGE-AUTHOR: mike.beach
#ROBOMERGE-SOURCE: CL 20264663 via CL 20264701 via CL 20264709
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)
[CL 20269367 by mike beach in ue5-main branch]
Main implementation by Dominik with build and switchboard support added by me.
#jira UE-147235
#rb Dominik.Peacock
#preflight 6284fa081f474f0660ecb74e
[CL 20264867 by jason walter in ue5-main branch]