why only a warning here? why can't we throw a runtime exception? if we can't change this flag, nothing will work, right? why not fail fast?