After a few months non-use my EOS 300D started showing error 99 when I pressed the shutter release. Changing battery and CF card had no effect.
More by luck than judgement I went into the tools menu and set "File numbering" to Auto reset, then removed and refit both battery and CF card. This seems to have cleared the fault.
As "File numbering" had originally been set to Continuous I can only assume that I had used up the allocation of file or folder numbers after about 9 years of use. Why the camera never showed the correct error code I have no idea.