I'm ok with `IllegalArgumentException` as a quick win (mergeable today on 1.6.x?) and then we can revisit it based on the ongoing discussion on ML. wdyt?