How to deal with timeout issue when debugging Phoenix app
There is a common scenario: You'd like to debug your Phoenix app with break!/4
or 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],
...
]