Hmm yeah, this sounds to me like a load order issue, like @Nawrot mentioned. It could be that the parent blueprint or a reference is not loaded when this BeginPlay is called, which also explains why it works when you stream in the level later. Have you tried building this out yet? Normally during a build it should spit out an error message if the load order is messed up.
If this is a blueprints-only project, I would suggest just manually loading in this level in last, to guarantee all its references are already loaded. If you’re using Cpp, you should have more control over the precise load order.