My company hired a remote freelancer to do some work (let's call him Joe). Joe's great at doing so, really quick and at a fair price. He's given us documentation about the process he followed, and is always willing to solve any issue that appears, even for free (if the problem comes from something he did/didn't do).
A relative of Joe's has lately had illness problems, so he has had to take him/her to the hospital which required him to be off work for several days. We wish the relative a quick recovery and let Joe spend some days without logging in. That's absolutely fine.
However, the situation changed today. We're close to the deadline and I asked Joe to solve a problem (that caused several disconnection hours of a server. Not because of his decisions, but simply because of a misconfiguration of the server), but he flatly refused to solve it, to the point of aggressively pointing out that it's stupid and I should solve it "the other way" which is to modify about 350 million entries and ensuring that nothing will break in an entire API. From what I know, the way I suggested may require Joe running a command in the server, taking up to a minute. He refuses to explain his decisions regardless of my concerns. He has then completely avoided talking to me.
The deadline is approaching and though he's done a great job, I assume Joe's having problems with his relative (maybe him/her getting worse), and he's refusing to defend his decision at all. This is clearly going to affect our professional relationship and might affect the deadline as well. How can I make Joe explain himself or do what I suggest?
To make it clear, if his reasons are powerful enough to prefer 2 weeks of work versus (I assume) 1 working minute, we could think of postponing the deadline a little bit.