If a corrupted call entry is causing the error, "Call history" might start working again when the corrupted entry is dropped after 120 days of availability expires. That would require the back-end process that deletes expired entries to function properly. But, an error would affect Cox's processing, so error resolution would be a priority. You would lose some data, but your Call history should work going forward for calls that occurred after the corrupted entry. If this is the case, Cox wouldn't tell you to wait 3-4 months, but they would probably have reason to believe the error will correct itself... eventually.
The web page displaying call history fails because it uses a collection that includes the corrupted data even if your days criteria is limited to calls after the date of the error.