This method may also be called by a custom error message generator
to fill in template values from the params array, simply set the third
parameter to the error message template string to use
The special variable %__msg% is reserved: use it only to specify where a message passed
in by the user should be placed in the template, like so: