Suppose Alice sends an ElGamal encryption of a value $v$ to Bob (using either the normal or exponential version of ElGamal). E.g. assuming publicly-known $pk_{BOB} = h$ and a generator $g$, Alice sends $Enc(v,h) = (c_1,c_2) = (g^r, vh^r)$ to Bob. Or for the exponential version, she sends $Enc(v,h) = (c_1,c_2) = (g^r, g^vh^r)$.
Assuming Alice is honest, Bob will be able to correctly decrypt and recover $v$. However, Alice might not perform the encryption correctly (intentionally or not). For example she could use some other public key $h'$ to encrypt $v$, and then Bob would decrypt to some value $v'$. As an example, suppose that the values are supposed to be representing an ASCII character, then the decrypted value $v'$ would be "garbage".
Security model: There is a third-party authority, where Alice must show that she is encrypting legitimate values.
Is there a way to amend the scheme such that either Alice can prove in Zero Knowledge (without revealing $v$) that she encrypted using $h$, or alternatively, Bob to prove in ZK (without revealing his secret key $x$) that decryption failed?