diff --git a/app/experiment/views.py b/app/experiment/views.py
index 241ecb682a59557971c67c1e378d70f8e2de8f28..e969a1d937096d685d799f8b26232373e812faf7 100644
--- a/app/experiment/views.py
+++ b/app/experiment/views.py
@@ -1060,18 +1060,13 @@ def create_embody(meta):
     emit('end', {'path': img_path})
 
 
-@socketio.on('end', namespace="/create_embody")
-def end_create_embody():
-    db.session.close()
-
-
 @socketio.on('connect', namespace="/download_csv")
 def start_download_csv():
     emit('success', {'connection': 'Start generating CSV file'})
 
 
 @socketio.on('generate_csv', namespace="/download_csv")
-def process_download_csv(meta):
+def download_csv(meta):
     exp_id = meta["exp_id"]
 
     data = generate_csv(exp_id)
@@ -1096,4 +1091,11 @@ def process_download_csv(meta):
 
 @socketio.on('end', namespace="/download_csv")
 def end_download_csv():
+    # TODO: not working solution... db session keeps hanging after socket session has ended
+    # mysqld timeout is set to 180s, so it kills hanging connections, but this is not a good solution 
+    db.session.close()
+
+
+@socketio.on('end', namespace="/create_embody")
+def end_create_embody():
     db.session.close()
diff --git a/app/static/js/getCSV.js b/app/static/js/getCSV.js
index 9c20c7631107fe028b1b310203a26253d828bae3..4b0313bbc2f96e59041548022644136f886ac246 100644
--- a/app/static/js/getCSV.js
+++ b/app/static/js/getCSV.js
@@ -26,6 +26,7 @@ $(document).ready(function()  {
 
         socket.on('timeout', function(data) {
             // kill connection
+
             socket.emit('end')
             socket.disconnect()            
 
@@ -39,6 +40,8 @@ $(document).ready(function()  {
         });
 
         socket.on('file_ready', function(file) {
+
+            socket.emit('end')
             socket.disconnect()            
 
             exportButton.text('File is ready!')
diff --git a/app/utils.py b/app/utils.py
index ebf43e4be0ba2e640d6e87099590104ccc1d32c8..d8aa68cc7fb284252bbb5aa94ece9966d6adafd4 100644
--- a/app/utils.py
+++ b/app/utils.py
@@ -142,6 +142,7 @@ select distinct p.idpage, q.idquestion from question q join page p on p.experime
 '''
 
 
+
 @timeit
 def generate_csv(exp_id):