Because that's part of the contract. Quote "Gets an instance of the given serviceType. Must return null if the service is not available (must not throw)."

But this is really just a bandaid until we've figured out why this is happening in the first place. From what I can tell, there's never an ILogger implementation registered with the resolver. So the DefaultLogManager will happily create a WrappingFullLogger with a null inner logger, leading to a crash.