{"action":"opened","issue":{"url":"https://api.github.com/repos/playframework/playframework/issues/4955","labels_url":"https://api.github.com/repos/playframework/playframework/issues/4955/labels{/name}","comments_url":"https://api.github.com/repos/playframework/playframework/issues/4955/comments","events_url":"https://api.github.com/repos/playframework/playframework/issues/4955/events","html_url":"https://github.com/playframework/playframework/issues/4955","id":99524096,"number":4955,"title":"Incorrect RequestTimeout documentation in 2.3.x","user":{"login":"cgbaker","id":1675087,"avatar_url":"https://avatars.githubusercontent.com/u/1675087?v=3","gravatar_id":"","url":"https://api.github.com/users/cgbaker","html_url":"https://github.com/cgbaker","followers_url":"https://api.github.com/users/cgbaker/followers","following_url":"https://api.github.com/users/cgbaker/following{/other_user}","gists_url":"https://api.github.com/users/cgbaker/gists{/gist_id}","starred_url":"https://api.github.com/users/cgbaker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cgbaker/subscriptions","organizations_url":"https://api.github.com/users/cgbaker/orgs","repos_url":"https://api.github.com/users/cgbaker/repos","events_url":"https://api.github.com/users/cgbaker/events{/privacy}","received_events_url":"https://api.github.com/users/cgbaker/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-08-06T21:02:13Z","updated_at":"2015-08-06T21:02:13Z","closed_at":null,"body":"In version 2.3.8, in the Scala WS module documentation at: \r\nplayframework/documentation/manual/scalaGuide/main/ws/ScalaWS.md\r\nit is documented that the default request timeout is None, to support stream consumption. However, in the code, the NingAsyncHttpClientConfigBuilder is configured first with the value from application.conf, and then with the value from play.api.libs.ws.Defaults as a fall-back. The latter is set, as of 2.3.8, to 120 seconds: \r\nhttps://github.com/playframework/playframework/blob/2.3.8/framework/src/play-ws/src/main/scala/play/api/libs/ws/Defaults.scala\r\n(this seems to be the case in 2.3.10, the most recent 2.3.x) \r\n\r\nThe result is that, 120 seconds after connecting to a text/event-stream connection, my connection is dropped by the com.ning.http.client.providers.netty.timeout.RequestTimeoutTimerTask\r\n\r\nThe workaround apparently is to manually add a request timeout of -1 to the request holder. However, this is a magic number for the Ning client, and I imagine that other clients could pick a different number to represent \"no timeout\" (e.g., zero).\r\n\r\nI looked at the most recent code in 2.4.x and it appears that this may still be an issue (I haven't tested it): \r\nhttps://github.com/playframework/playframework/blob/2.4.x/framework/src/play-ws/src/main/scala/play/api/libs/ws/Config.scala\r\nThe default here is set to 2 minutes; over-riding it to disable the timeout with a value of -1 (assuming this work the version of Ning used by 2.4.x) is still likely to be provider-specific. The documentation for 2.4.x correctly lists the timeout as 2 minutes, but it doesn't seem to indicate how to remove the request timeout. Ultimately, and IMHO, I think this is something that should be handled, on a provider-specific basis, by the WS library."}}