Flask debug=True does not work when going through uWSGI

flask, python, wsgi

Solution

According to the Flask mailing list you cannot use Flask's debug option with `uWSGI`, because it's not to be used in a forking environment.

You see 502 because flask/werkzeug do not send any data to the webserver, so nginx will returns a 502.

You can emulate the debugger using --catch-exceptions option in uWSGI (but please do not do it in production)

So, the reason you're seeing 502s will be because of that. The fix would be to add `--catch-exceptions` to `uWSGI` on execution.

Problem

I call `app.run(debug=True)` in my flask file. and I have it deployed with uWSGI and nginx (I followed these instructions) ``` uwsgi -s /tmp/uwsgi.sock -w flask_file_name:app -H /path/to/virtual/env --chmod-socket 666 ``` But when I get an error, I don't get any debug information in the browser or in the uWSGI log. Any ideas? flask_file_name.py: ``` from flask import Flask, make_response, Response, jsonify import json app = Flask(__name__) app.debug = True @app.route("/") def hello(): return "Hello World!" if __name__ == '__main__': app.run() ```

Original source