I think timeout issues are there for a long time now and as you said we all have adjusted our timeouts accordingly considering each scenarios.
In this case, the response is never timedout at ZATCA’s end, but they do respond at the first request with same failed 409. So we will have retry obviously as the request was not a timedout one, but genuine rejection.
Still lets say they are rejecting same payload, then It will contradict what ZATCA Team has said here multiple times:
also,
In this two cases, they talked about re-reporting same payload without any issue and it was working good till yesterday.