diff --git a/web/pgadmin/tools/sqleditor/__init__.py b/web/pgadmin/tools/sqleditor/__init__.py
index 2c96dea..8e78967 100644
--- a/web/pgadmin/tools/sqleditor/__init__.py
+++ b/web/pgadmin/tools/sqleditor/__init__.py
@@ -1304,16 +1304,18 @@ def start_query_download_tool(trans_id):

                 sync_conn.connect(autocommit=False)

+                def cleanup():
+                    conn.manager.connections[sync_conn.conn_id]._release()
+                    del conn.manager.connections[sync_conn.conn_id]
+
                 # This returns generator of records.
                 status, gen = sync_conn.execute_on_server_as_csv(sql, records=2000)

                 if not status:
-                    conn.manager.release(conn_id=conn_id, did=trans_obj.did)
-                    return internal_server_error(errormsg=str(gen))
-
-                def cleanup():
-                    conn.manager.connections[sync_conn.conn_id]._release()
-                    del conn.manager.connections[sync_conn.conn_id]
+                    r = Response('"{0}"'.format(gen), mimetype='text/csv')
+                    r.headers["Content-Disposition"] = "attachment;filename=error.csv"
+                    r.call_on_close(cleanup)
+                    return r

                 r = Response(gen(), mimetype='text/csv')

@@ -1326,11 +1328,12 @@ def start_query_download_tool(trans_id):
                 r.headers["Content-Disposition"] = "attachment;filename={0}".format(filename)

                 r.call_on_close(cleanup)
-
                 return r

         except Exception as e:
-            conn.manager.release(conn_id=conn_id, did=trans_obj.did)
-            return internal_server_error(errormsg=str(e))
+            r = Response('"{0}"'.format(e), mimetype='text/csv')
+            r.headers["Content-Disposition"] = "attachment;filename=error.csv"
+            r.call_on_close(cleanup)
+            return r
     else:
         return internal_server_error(errormsg=gettext("Transaction status check failed."))
diff --git a/web/pgadmin/utils/driver/psycopg2/__init__.py b/web/pgadmin/utils/driver/psycopg2/__init__.py
index 1f7773b..2d6239f 100644
--- a/web/pgadmin/utils/driver/psycopg2/__init__.py
+++ b/web/pgadmin/utils/driver/psycopg2/__init__.py
@@ -609,6 +609,7 @@ WHERE
             if not results:
                 if not cur.closed:
                     cur.close()
+                yield gettext('"The query executed did not return any data."')
                 return

             header = [c.to_dict()['name'] for c in cur.ordered_description()]
