The value will be set as part of the controller plug pipeline, so the value won’t be set in the router. And even the controller doesn’t “query” the action from somewhere, but it’s literally called like MyApp.SomeController.call(conn, action) by the router. So only the matching route is aware of which action on the controller is meant to be called.
Thank you, I just understood better what is going on.
After inspecting conn inside the plug itself when called from the router, the :phoenix_action => :index part of the inspect output is no more available. That is to set later…