One error type. Every failure that a user could plausibly cause carries a sentence explaining what to do about it, because a failure whose reason is missing from the message costs more than the failure itself.