The double error occurs because of how format_args!() is defined. If the first argument is not a string literal then it emits an error but also expands to the first argument. So then the macro is attempted to be expanded again, and fails.