See Timeout with MCU / Lost communication with MCU for some details.
In all cases I’m aware of, this has been due to hardware instabilities and this fits quite well to your description: If the error frequency was getting worse over the time, this strongly points to some degeneration, e.g. a slightly damaged cable becoming more and more damaged by wear and tear.