This is basically what dialyzer is telling you. It is saying that that particular clause of the log_error/3 function will never match as it will never be called with the first argument as :nack. It is not complaining about the function as a whole.
Yes, sometimes dialyzer warnings can be a bit cryptic to understand. It is generally trying to work both ways with functions and match a definition of a function and the calls to it and check if they work. It uses something called Success typing.