2015-09-26 4 views
14

मुझे phoenix वेबैप में निम्न त्रुटि मिल रही है, मैं विकास कर रहा हूं। यह कुछ मॉडलों और एक पृष्ठ के साथ एक साधारण ऐप है, जहां सभी मॉडल बनाने के लिए एक बहु-टैबड रूप में जोड़ा जाता है।फीनिक्स लॉग में अजीब त्रुटि: MyApp.Endpoint को समाप्त किया गया

मुझे लॉग में निम्न त्रुटि मिल रही है, हालांकि ब्राउज़र की अंत में चीजें ठीक काम कर रही हैं। लॉग से भी मैं समझ नहीं पा रहा हूं कि क्या गलत है और इसे कैसे डिबग करना है।

[error] #PID<0.1603.0> running MyApp.Endpoint terminated 
Server: localhost:4000 (http) 
Request: GET/
** (exit) an exception was raised: 
    ** (Plug.Conn.AlreadySentError) the response was already sent 
     (plug) lib/plug/conn.ex:428: Plug.Conn.resp/3 
     (plug) lib/plug/conn.ex:415: Plug.Conn.send_resp/3 
     (my_app) web/controllers/personal_info_controller.ex:1: MyApp.PersonalInfoController.phoenix_controller_pipeline/2 
     (my_app) lib/phoenix/router.ex:265: MyApp.Router.dispatch/2 
     (my_app) web/router.ex:1: MyApp.Router.do_call/2 
     (my_app) lib/my_app/endpoint.ex:1: MyApp.Endpoint.phoenix_pipeline/1 
     (my_app) lib/plug/debugger.ex:90: MyApp.Endpoint."call (overridable 3)"/2 
     (my_app) lib/phoenix/endpoint/render_errors.ex:34: MyApp.Endpoint.call/2 
     (plug) lib/plug/adapters/cowboy/handler.ex:15: Plug.Adapters.Cowboy.Handler.upgrade/4 
     (cowboy) src/cowboy_protocol.erl:442: :cowboy_protocol.execute/4 
+0

यह वास्तव में मददगार है पर सुझाव दिया गया था (के रूप में @Gazier नीचे कहा) कोड को देखने के लिए कर रहा है। –

उत्तर

19

जब आप एक प्रतिक्रिया नकल आपको यह त्रुटि प्राप्त - यह अक्सर होता है कि आप एक प्लग है कि कुछ त्रुटि पर एक प्रतिक्रिया (नहीं उदाहरण के लिए में लॉग इन किया जा रहा है एक उपयोगकर्ता) भेज देंगे और फिर एक और प्रतिक्रिया से भेजा जा रहा है जब आपके नियंत्रक कार्रवाई।

अपना कोड देखे बिना यह कहना मुश्किल है कि समस्या कहां है। प्रतिक्रिया भेजने के बाद आप इस त्रुटि को रोकने के लिए Plug.Conn.halt/1 का उपयोग कर सकते हैं।

उदा।

conn 
|> send_resp(404, "Post not found") 
|> halt 
10

नियंत्रक से plug :action को हटाने के लिए यह मेरे लिए तय किया गया। यह अब जरूरत के रूप में प्रति https://github.com/phoenixframework/phoenix/issues/888

यह समाधान के मामलों की इन प्रकार के Phoenix/Elixir/Ejabberd - Response already sent error

+0

हाँ, मेरे मामले में यह भी हल हो गया है। धन्यवाद दोस्त! –

+0

यह अब समाधान है। –

संबंधित मुद्दे