I don’t really know whether this fits your problem, but I had a similar issue as well. I rebuilt the lighting for my map, and it looked okay (PIE didn’t tell me that lighting needs to be rebuilt after a rebuild). However, I then saved everything (without touching ANY object!), and after I reopened my map, lighting needed to be rebuilt again!
My issue was, that I didn’t know what was causing this issue, since I don’t have procedural generated levels and my level is quite huge. So I added some c++ code which told me which object was causing the issue:
void ATLL_PlayerController::DebugLightingOutput()
{
#if WITH_EDITOR
UE_LOG(LogMainMenu, Warning, TEXT("Finding objects which need lighting rebuild..."));
for (TActorIterator<AActor> ActorItr(GetWorld()); ActorItr; ++ActorItr)
{
const int32 numInteractions = ActorItr->GetNumUncachedStaticLightingInteractions();
if (numInteractions > 0)
{
UE_LOG(LogMainMenu, Warning, TEXT("Actor Name: %s"), *ActorItr->GetName());
UE_LOG(LogMainMenu, Warning, TEXT("Actor Location: %s"), *ActorItr->GetActorLocation().ToString());
UE_LOG(LogMainMenu, Warning, TEXT("Num Interactions: %d"), numInteractions);
}
}
#endif
}
I put this into my player controller since I had to use “GetWorld()” and I wanted to output a list of all invalid objects on a button press.
It turned out, that I had a blueprint with an “Actor” component (which added another actor to this blueprint as a component) and this was causing the issue after a reload. In my case, I avoided the error by making this actor a dynamic actor so that it wouldn’t have static lighting.
Hope this helps in any way.
Btw., maybe Epic could add a way for us to get a list of all actors / components in our level which needs lighting to be rebuilt - IN THE EDITOR. I googled and it seems there was console command for that in UDK, which is still mentioned in UE4 but was removed.