When issuing more than two Invoke-RestMethod commands with the PUT or DELETE method against the same server, the third one fails with error: "Invoke-RestMethod : The operation has timed out." Only after closing the powershell and reopening will allow a new Invoke-RestMethod command run successfully.
This behavior was tested with two different servers, offering a REST API. GET and POST methods are not affected.
Using "netstat -an" you will see for the server communicating with, two active connections with state CLOSE_WAIT. On the server side you will see FIN_WAIT_2.
Investigating the tcp communication with wireshark, I can see that the client receives the "ACK,FIN" but is probably not issuing a close() as there is no "ACK,FIN" send as a response by the client to the server.
If using Fiddler in between you will not encounter the timeout but see in netstat for each Invoke-RestMethod command run, a CLOSE_WAIT. In the http standard only two connections are allowed to the same server. Fiddler is modifying this to allow unlimited http connections to the same server.
When closing the powershell a "RST" is send to the server, discarding the tcp session in CLOSE_WAIT state.