java.net.SocketTimeoutException: Read timed while making a request to a remote server
Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.
Support for Server* products will end after February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Platform Notice: Data Center Only - This article only applies to Atlassian products on the Data Center platform.
Summary
When a Jira instance makes an HTTP request to a remote server, the request fails with a message similar to:
Exception in request: java.net.SocketTimeoutException: Read timed out in http POST to ...
Environment
The issue may occur in any setup where one Jira instance makes an HTTP request to a remote server.
For example, Jira A makes a request to Jira B via the Jira to Jira Issue Copy.
Diagnosis
The request in the remote server succeeds but takes more than 10 seconds, which is the default socket timeout for the client.
Cause
The reason why the request in the remote server takes more than 10 seconds should be investigated and potentially fixed.
If the request legitimately takes more than 10 seconds, the default socket timeout of 10 seconds isn't enough on the Apache client side.
Solution
Increase the Apache client socket timeout via the JVM parameter http.socket.timeout
.
In some cases, we have seen apps that use a different parameter http.socketTimeout
.
- The value needs to be set in milliseconds.
For example:-Dhttp.socket.timeout=20000
. - For more details on setting up the JVM parameter, please refer to the Atlassian documentation Setting properties and options on startup.
- Jira should be restarted for the change to be effective.