A channel has been established between two parties and they have come to share some secrets, at least a symmetric session key. I had long assumed that ordinary symmetric encryption would authenticate packets from one party to the other for any packets formed without knowledge of the symmetric key would produce garbage upon decryption.

Several things can go wrong with this simple plan:

Note that high grade error control applied near the physical communications channel is:

The bottom line is that a communications protocol that is supposed to transmit the data, and only the data supplied by the source to the sink and only the sink, needs much more sophistication than simple checking of the natural redundancy of the plain-text, even if it is well encrypted.
In cases where compute cycles or bandwidth is dear, an efficient immodular design is possible but at the cost of accurate assessment and placement of redundancy in the plain-text. This is a difficult design consideration to maintain as the system evolves.

There are several other better known integrity vulnerabilities: