better support for invalid format string