I have enabled threaded in the Flask dev server but it seems that it doesn't fix the "Broken pipe" error described in Flask broken pipe with requests.
from flask import Flask, request import requests app = Flask(__name__) @app.route('/compare', methods=['POST']) def compare(): data = request.get_json() img = data['img'] imgdata = requests.get(img).content # Error is from here filename = 'hello.jpg' with open(filename, 'wb') as f: f.write(imgdata) return 'Yes' if __name__ == '__main__': app.run(threaded=True, host='0.0.0.0', port=80) Traceback (most recent call last): File "/usr/lib/python2.7/SocketServer.py", line 593, in process_request_thread self.finish_request(request, client_address) File "/usr/lib/python2.7/SocketServer.py", line 334, in finish_request self.RequestHandlerClass(request, client_address, self) File "/usr/lib/python2.7/SocketServer.py", line 651, in __init__ self.finish() File "/usr/lib/python2.7/SocketServer.py", line 710, in finish self.wfile.close() File "/usr/lib/python2.7/socket.py", line 279, in close self.flush() File "/usr/lib/python2.7/socket.py", line 303, in flush self._sock.sendall(view[write_offset:write_offset+buffer_size]) error: [Errno 32] Broken pipe