Quick answer: Unreal Actor BeginPlay running after its components' first Tick? Component AutoActivate and Actor InitialLifeSpan interact - validate state in Tick instead of asserting BeginPlay ran.
Component crashes on first Tick because BeginPlay setup hasn't run. AutoActivate is on; AddComponent was called from BeginPlay.
Initialize in InitializeComponent
For setup that must complete before any Tick, override InitializeComponent. Fires before BeginPlay and before any Tick on the component.
Or guard Tick
if (!bInitialized) return;Defensive but explicit. Useful when component initialization order is uncertain.
Avoid dynamic component creation
Components added in BeginPlay don't participate in the InitializeComponent cycle. Pre-add in the constructor when possible.
“Lifecycle ordering in Unreal is complicated. Defensive checks beat assumptions.”
Diagram the lifecycle for your project's components. Every junior engineer hits this once; the diagram saves the second discovery.