How to deal with timeout issue when debugging Phoenix app
There is a common scenario: You'd like to debug your Phoenix app with
IEx.pry/0. Everything works fine, until... Phoenix server throws a timeout error statement.
** (EXIT from #PID<0.5227.0>) shell process exited with reason: shutdown
It happens after about 60 seconds. Why?
The process has a certain amount of time to send a response. If it takes more - then the server says: "It takes too long. The process is probably suspended and in the meanwhile, the Client/user is raging on the other side. Let's kill him... (the process, not the user)".
Usually, it's a very nice, and helpful logic. But in the case of debugging it might be a real pain in the neck.
As soon, as we know the reason, we're able to find the solution. And here we are. Just set the
idle_timeout option at your endpoint config. Generally at
config/dev.exs, or so.
config :appname, Appname.Endpoint, http: [ protocol_options: [idle_timeout: 5_000_000_000], ... ]