I suggest changing all these error situations to the following:
1. Print a simple error message to stderr (not the line)
2. Print the line as such, with no error message to stdout.
Here the problem will be that the line will get printed both times.  The user of ultragrep will want to see the request exactly as it is in case there is some problem parsing the log.  This same thing has to happen for all such parse-error situations.