I think it's fine. This is the current behavior.
`preInit()` doesn't have many exceptions and they are all easy to read and fix.