So it turns out this is entirely possible to achieve in Kotlin. The println executes. No concurrency involved. I may have missed some fine print but to me this is a case of something that "cannot be null" being very, very null in the "throws nullptr and crashes your program" sense. Really puzzling until you realize that you indirectly called this from an init block. Even worse if you're newish to Kotlin and thought init was basically the body of the primary constructor. (It's already a weird "feature" with special syntax so I wouldn't have been surprised.) So I guess I just stop using primary constructors so I can actually write constructor code without seeing weird crap like this?