See my answer to this question How do I get the SOAP response when there was an exception?
Actually, I have two answers there, but the one of interest is the RIO OnAfterExecute handler. There you can log your SOAP responses to a file, and you can see what's happening. I expect that after hours of inactivity, the server may be giving an empty response or is timing out. If the SOAP response XML comes back empty, and you try to treat the response as a SOAP object, it'll be nil and you'll blow up with an A/V for sure. So this way, you get to inspect the raw TEXT coming back, and react accordingly.
And you can actually build defensive code in here. For example, if the response is empty, you could swap in some other XML that represents a SOAP fault exception. Now your SOAP handler will know what to do.