Don't require the user of a field to always have to specify an error message, when there is usually a perfectly good default available. In other words, put back the default error messages and just leave the change that allows overriding. You don't want to make the most common use-case harder just to favour customisation.