The problem is in the function with signature "ULevelStreaming* GetLevelStreaming(FString SafeLevelName, UWorld& World)" within LevelSequenceActorSpawner.cpp at line 30. The problem is with the SafeLevelName value is constructed:
SafeLevelName = TEXT("/") + SafeLevelName;
Currently this value does not take the the PIE instance name into consideration. At line 35, you then compare SafeLevelName to a string that does include the PIE instance name. Lets say I used a sub level named TestLevel. In this case, the following will occur:
1.) Line 30 SafeLevelName = "/TestLevel"
2.) Line 35 LevelStreaming->GetWorldAssetPackageName() will return something like "/Game/Maps/UEDPIE_1_TestLevel"
Therefore, the statement EndsWith(SafeLevelName, ESearchCase::IgnoreCase) will always fail since SafeLevelName emits the pie instance name (in this example it was UEDPIE_1).
Line 30 needs adjusted to append the pie instance name to make the statement at line 35 work as expected.
This was reported and tested in 4.22.3 (CL-7053642). This was reproduced in 4.23 (CL-8386587) and Main 4.24 (CL-9141524)
Results: LogMovieScene: Warning: Can't find sublevel 'XXXX' to spawn 'XXXX' into
where XXXX is replaced with the name of the sublevel and actor you chose.
Expected: The warning should not print, as the sub level is currently loaded.
There's no existing public thread on this issue, so head over toAnswerHub just mention UE-80902 in the post.