diff --git a/src/FACT_air.jl b/src/FACT_air.jl
index 52634241ad10bf8f416ec2612bd52a531d47002a..108447f0049281d25fa70c82f11f08dfdbb8b55b 100644
--- a/src/FACT_air.jl
+++ b/src/FACT_air.jl
@@ -32,7 +32,13 @@ function eu_air(conn_dict::Dict, selection::Dict)
         # create connection
         conn = establish_connection(conn_dict["host"], conn_dict["user"], conn_dict["password"], conn_dict["database"]; port=conn_dict["port"])
         # execute
-        result = query_connection(conn, query)
+        result = DataFrame()
+        try
+            # Execute session variable adjustments
+            result = query_connection(conn, query)
+        catch ex
+            @error "Failed to set session variables for query $query with expection " exception=(ex, catch_backtrace())
+        end
         # close connection
         close_connection(conn)
         # Check if the result is empty
@@ -72,7 +78,6 @@ This function queries a database for air traffic information, such as the number
 This example queries air traffic data for specified U.S. regions and returns the results in a DataFrame.
 """
 function us_air(conn_dict::Dict, selection::Dict)
-    
     # getting valuable info from dictionary: acceptable years are 1961, 71, 81, 91, 2001, 2011
     geo_id = selection["geo_id"]
     shape_obj = selection["shape_obj"]
@@ -85,7 +90,13 @@ function us_air(conn_dict::Dict, selection::Dict)
         # create connection
         conn = establish_connection(conn_dict["host"], conn_dict["user"], conn_dict["password"], conn_dict["database"]; port=conn_dict["port"])
         # execute
-        result = query_connection(conn, query)
+        result = DataFrame()
+        try
+            # Execute session variable adjustments
+            result = query_connection(conn, query)
+        catch ex
+            @error "Failed to set session variables for query $query with expection " exception=(ex, catch_backtrace())
+        end
         # close connection
         close_connection(conn)
         # Check if the result is empty
diff --git a/src/FACT_bldgs.jl b/src/FACT_bldgs.jl
index ae8ad285544e9139b9df2d6279e8426ed1da28d4..6b76ac0aef98cea6f8727efe0774e9f7907ffe09 100644
--- a/src/FACT_bldgs.jl
+++ b/src/FACT_bldgs.jl
@@ -34,8 +34,21 @@ function footprint_avg_height(conn_dict::Dict, selection::Dict)
         # create connection
         conn = establish_connection(conn_dict["host"], conn_dict["user"], conn_dict["password"], conn_dict["database"]; port=conn_dict["port"])
         # execute
-        result = query_connection(conn, query)
-        result2 = query_connection(conn, query2)
+        result = DataFrame()
+        try
+            # Execute session variable adjustments
+            result = query_connection(conn, query)
+        catch ex
+            @error "Failed to set session variables for query $query with expection " exception=(ex, catch_backtrace())
+        end
+        # execute
+        result2 = DataFrame()
+        try
+            # Execute session variable adjustments
+            result2 = query_connection(conn, query2)
+        catch ex
+            @error "Failed to set session variables for query $query2 with expection " exception=(ex, catch_backtrace())
+        end
         # close connection
         close_connection(conn)
         # execute
diff --git a/src/FACT_jobs.jl b/src/FACT_jobs.jl
index 91be5cf8179d47938ccf76fb391af7a7b715bdc0..070dd5e14ec5ee8fbfaa1ab5f381da3fc125a9b7 100644
--- a/src/FACT_jobs.jl
+++ b/src/FACT_jobs.jl
@@ -37,7 +37,13 @@ function us_lodes(conn_dict::Dict, selection::Dict)
         # create connection
         conn = establish_connection(conn_dict["host"], conn_dict["user"], conn_dict["password"], conn_dict["database"]; port=conn_dict["port"])
         # execute
-        result = query_connection(conn, query)
+        result = DataFrame()
+        try
+            # Execute session variable adjustments
+            result = query_connection(conn, query)
+        catch ex
+            @error "Failed to set session variables for query $query with expection " exception=(ex, catch_backtrace())
+        end
         # close connection
         close_connection(conn)
         long_df = stack(result, names(result), variable_name=:industry, value_name=:jobs)
@@ -103,7 +109,13 @@ function us_qcew(conn_dict::Dict, selection::Dict)
         # create connection
         conn = establish_connection(conn_dict["host"], conn_dict["user"], conn_dict["password"], conn_dict["database"]; port=conn_dict["port"])
         # execute
-        result = query_connection(conn, query)
+        result = DataFrame()
+        try
+            # Execute session variable adjustments
+            result = query_connection(conn, query)
+        catch ex
+            @error "Failed to set session variables for query $query with expection " exception=(ex, catch_backtrace())
+        end
         # close connection
         close_connection(conn)
         # Check if the 'industry' column exists
@@ -148,7 +160,13 @@ function eu_lfs(conn_dict::Dict, selection::Dict)
         # create connection
         conn = establish_connection(conn_dict["host"], conn_dict["user"], conn_dict["password"], conn_dict["database"]; port=conn_dict["port"])
         # execute
-        result = query_connection(conn, query)
+        result = DataFrame()
+        try
+            # Execute session variable adjustments
+            result = query_connection(conn, query)
+        catch ex
+            @error "Failed to set session variables for query $query with expection " exception=(ex, catch_backtrace())
+        end
         # close connection
         close_connection(conn)
         if !("industry" in names(result))
@@ -192,7 +210,13 @@ function eu_sbs(conn_dict::Dict, selection::Dict)
             # create connection
             conn = establish_connection(conn_dict["host"], conn_dict["user"], conn_dict["password"], conn_dict["database"]; port=conn_dict["port"])
             # execute
-            result = query_connection(conn, query)
+            result = DataFrame()
+            try
+                # Execute session variable adjustments
+                result = query_connection(conn, query)
+            catch ex
+                @error "Failed to set session variables for query $query with expection " exception=(ex, catch_backtrace())
+            end
             # close connection
             close_connection(conn)
             if !("industry" in names(result))
@@ -236,7 +260,13 @@ function eu_rea(conn_dict::Dict, selection::Dict)
         # create connection
         conn = establish_connection(conn_dict["host"], conn_dict["user"], conn_dict["password"], conn_dict["database"]; port=conn_dict["port"])
         # execute
-        result = query_connection(conn, query)
+        result = DataFrame()
+        try
+            # Execute session variable adjustments
+            result = query_connection(conn, query)
+        catch ex
+            @error "Failed to set session variables for query $query with expection " exception=(ex, catch_backtrace())
+        end
         # close connection
         close_connection(conn)
         if !("industry" in names(result))
diff --git a/src/FACT_mine.jl b/src/FACT_mine.jl
index 795e447f7f461455ade86817cdfced5cbb589cf7..64ee8f44a2e4a5fb66f30612d4da5b5131a5bee0 100644
--- a/src/FACT_mine.jl
+++ b/src/FACT_mine.jl
@@ -21,9 +21,6 @@ This example retrieves geology data for two geographic areas in the "US" region
 
 """
 function geology_full(conn_dict::Dict, selection::Dict)
-    # temporarily increase max_allowed_packet
-    size_query = "SET GLOBAL max_allowed_packet=1073741824;" #Sets max_allowed_packet to 1GB
-    
     # getting valuable info from dictionary
     geo_id = selection["geo_id"]
     shape_obj = selection["shape_obj"]
@@ -66,8 +63,13 @@ function geology_full(conn_dict::Dict, selection::Dict)
         # create connection
         conn = establish_connection(conn_dict["host"], conn_dict["user"], conn_dict["password"], conn_dict["database"]; port=conn_dict["port"])
         # execute
-        DBInterface.execute(conn, size_query)
-        result = query_connection(conn, query)
+        result = DataFrame()
+        try
+            # Execute session variable adjustments
+            result = query_connection(conn, query)
+        catch ex
+            @error "Failed to set session variables for query $query with expection " exception=(ex, catch_backtrace())
+        end
         # close connection
         close_connection(conn)
         # Check if the result is empty
@@ -123,7 +125,14 @@ function minerals_full(conn_dict::Dict, selection::Dict)
         for table in tables
             # prepare query
             query = "SELECT SUM(ST_Area(ST_Intersection(SHAPE, ST_GeomFromText('$shape')))) / $ar AS $table FROM $table WHERE ST_Intersects(SHAPE, ST_GeomFromText('$shape'));"
-            result2 = query_connection(conn, query)
+            # execute
+            result2 = DataFrame()
+            try
+                # Execute session variable adjustments
+                result2 = query_connection(conn, query)
+            catch ex
+                @error "Failed to set session variables for query $query with expection " exception=(ex, catch_backtrace())
+            end
             result = hcat(result, result2)
         end
         # close connection
diff --git a/src/FACT_population.jl b/src/FACT_population.jl
index dc45a05917cc5d8bf3325d08072a9e1354134808..554b5a06a617f4d2f33ec241e8425af87793b6c3 100644
--- a/src/FACT_population.jl
+++ b/src/FACT_population.jl
@@ -34,7 +34,13 @@ function eu_lau(conn_dict::Dict, selection::Dict)
         # create connection
         conn = establish_connection(conn_dict["host"], conn_dict["user"], conn_dict["password"], conn_dict["database"]; port=conn_dict["port"])
         # execute
-        result = query_connection(conn, query)
+        result = DataFrame()
+        try
+            # Execute session variable adjustments
+            result = query_connection(conn, query)
+        catch ex
+            @error "Failed to set session variables for query $query with expection " exception=(ex, catch_backtrace())
+        end
         # close connection
         close_connection(conn)
         # Check if the result is empty
@@ -86,7 +92,13 @@ function eu_nuts(conn_dict::Dict, selection::Dict)
         # create connection
         conn = establish_connection(conn_dict["host"], conn_dict["user"], conn_dict["password"], conn_dict["database"]; port=conn_dict["port"])
         # execute
-        result = query_connection(conn, query)
+        result = DataFrame()
+        try
+            # Execute session variable adjustments
+            result = query_connection(conn, query)
+        catch ex
+            @error "Failed to set session variables for query $query with expection " exception=(ex, catch_backtrace())
+        end
         # close connection
         close_connection(conn)
         # Check if the result is empty
@@ -143,7 +155,13 @@ function us_block(conn_dict::Dict, selection::Dict)
             # create connection
             conn = establish_connection(conn_dict["host"], conn_dict["user"], conn_dict["password"], conn_dict["database"]; port=conn_dict["port"])
             # execute
-            result = query_connection(conn, query)
+            result = DataFrame()
+            try
+                # Execute session variable adjustments
+                result = query_connection(conn, query)
+            catch ex
+                @error "Failed to set session variables for query $query with expection " exception=(ex, catch_backtrace())
+            end
             # close connection
             close_connection(conn)
             # Check if the result is empty
@@ -164,7 +182,13 @@ function us_block(conn_dict::Dict, selection::Dict)
             # create connection
             conn = establish_connection(conn_dict["host"], conn_dict["user"], conn_dict["password"], conn_dict["database"]; port=conn_dict["port"])
             # execute
-            result = query_connection(conn, query)
+            result = DataFrame()
+            try
+                # Execute session variable adjustments
+                result = query_connection(conn, query)
+            catch ex
+                @error "Failed to set session variables for query $query with expection " exception=(ex, catch_backtrace())
+            end
             # close connection
             close_connection(conn)
             # Check if the result is empty
@@ -217,7 +241,13 @@ function us_county(conn_dict::Dict, selection::Dict)
         # create connection
         conn = establish_connection(conn_dict["host"], conn_dict["user"], conn_dict["password"], conn_dict["database"]; port=conn_dict["port"])
         # execute
-        result = query_connection(conn, query)
+        result = DataFrame()
+        try
+            # Execute session variable adjustments
+            result = query_connection(conn, query)
+        catch ex
+            @error "Failed to set session variables for query $query with expection " exception=(ex, catch_backtrace())
+        end
         # close connection
         close_connection(conn)
         # Check if the result is empty
diff --git a/src/FACT_ports.jl b/src/FACT_ports.jl
index 0e30d5c96b7b0dcc651de12e5fb9419735e6fca7..a39d56934cb563653fc0680f6636378a852c7453 100644
--- a/src/FACT_ports.jl
+++ b/src/FACT_ports.jl
@@ -33,8 +33,21 @@ function eu_ports(conn_dict::Dict, selection::Dict)
         # create connection
         conn = establish_connection(conn_dict["host"], conn_dict["user"], conn_dict["password"], conn_dict["database"]; port=conn_dict["port"])
         # execute
-        result = query_connection(conn, query)
-        result2 = query_connection(conn, query2)
+        result = DataFrame()
+        try
+            # Execute session variable adjustments
+            result = query_connection(conn, query)
+        catch ex
+            @error "Failed to set session variables for query $query with expection " exception=(ex, catch_backtrace())
+        end
+        # execute
+        result2 = DataFrame()
+        try
+            # Execute session variable adjustments
+            result2 = query_connection(conn, query2)
+        catch ex
+            @error "Failed to set session variables for query $query2 with expection " exception=(ex, catch_backtrace())
+        end
         # close connection
         close_connection(conn)
         result = hcat(result, result2)
@@ -87,7 +100,13 @@ function us_ports(conn_dict::Dict, selection::Dict)
             # create connection
             conn = establish_connection(conn_dict["host"], conn_dict["user"], conn_dict["password"], conn_dict["database"]; port=conn_dict["port"])
             # execute
-            result = query_connection(conn, query)
+            result = DataFrame()
+            try
+                # Execute session variable adjustments
+                result = query_connection(conn, query)
+            catch ex
+                @error "Failed to set session variables for query $query with expection " exception=(ex, catch_backtrace())
+            end
             # close connection
             close_connection(conn)
             # Check if the result is empty
diff --git a/src/FACT_power.jl b/src/FACT_power.jl
index f6d169d31cd7f641902c86fb645475e407f51e33..ad2ef75d7ac5cb5888121062eed4b2ee0419ef42 100644
--- a/src/FACT_power.jl
+++ b/src/FACT_power.jl
@@ -89,8 +89,21 @@ function us_power(conn_dict::Dict, selection::Dict)
         # create connection
         conn = establish_connection(conn_dict["host"], conn_dict["user"], conn_dict["password"], conn_dict["database"]; port=conn_dict["port"])
         # execute
-        result = query_connection(conn, query)
-        result2 = query_connection(conn, query2)
+        result = DataFrame()
+        try
+            # Execute session variable adjustments
+            result = query_connection(conn, query)
+        catch ex
+            @error "Failed to set session variables for query $query with expection " exception=(ex, catch_backtrace())
+        end
+        # execute
+        result2 = DataFrame()
+        try
+            # Execute session variable adjustments
+            result2 = query_connection(conn, query2)
+        catch ex
+            @error "Failed to set session variables for query $query2 with expection " exception=(ex, catch_backtrace())
+        end
         # close connection
         close_connection(conn)
         result = hcat(result, result2)
diff --git a/src/FACT_rail.jl b/src/FACT_rail.jl
index 2c615acf587a802f3f61280cc6b7bf0c29959eee..2138048f923f4ecf84ca2dcf3cc41d13b3124c14 100644
--- a/src/FACT_rail.jl
+++ b/src/FACT_rail.jl
@@ -33,8 +33,21 @@ function eu_rail(conn_dict::Dict, selection::Dict)
         # create connection
         conn = establish_connection(conn_dict["host"], conn_dict["user"], conn_dict["password"], conn_dict["database"]; port=conn_dict["port"])
         # execute
-        result = query_connection(conn, query)
-        result2 = query_connection(conn, query2)
+        result = DataFrame()
+        try
+            # Execute session variable adjustments
+            result = query_connection(conn, query)
+        catch ex
+            @error "Failed to set session variables for query $query with expection " exception=(ex, catch_backtrace())
+        end
+        # execute
+        result2 = DataFrame()
+        try
+            # Execute session variable adjustments
+            result2 = query_connection(conn, query2)
+        catch ex
+            @error "Failed to set session variables for query $query2 with expection " exception=(ex, catch_backtrace())
+        end
         # close connection
         close_connection(conn)
         result = hcat(result, result2)
@@ -88,8 +101,21 @@ function us_rail(conn_dict::Dict, selection::Dict)
         # create connection
         conn = establish_connection(conn_dict["host"], conn_dict["user"], conn_dict["password"], conn_dict["database"]; port=conn_dict["port"])
         # execute
-        result = query_connection(conn, query)
-        result2 = query_connection(conn, query2)
+        result = DataFrame()
+        try
+            # Execute session variable adjustments
+            result = query_connection(conn, query)
+        catch ex
+            @error "Failed to set session variables for query $query with expection " exception=(ex, catch_backtrace())
+        end
+        # execute
+        result2 = DataFrame()
+        try
+            # Execute session variable adjustments
+            result2 = query_connection(conn, query2)
+        catch ex
+            @error "Failed to set session variables for query $query2 with expection " exception=(ex, catch_backtrace())
+        end
         # close connection
         close_connection(conn)
         result = hcat(result, result2)
diff --git a/src/utils_DB_connection.jl b/src/utils_DB_connection.jl
index 58d0e12e9f694a07fa253603bcc85da8147a7872..d951005609549a864feaeb904bffdc3f1cdd6eb9 100644
--- a/src/utils_DB_connection.jl
+++ b/src/utils_DB_connection.jl
@@ -14,7 +14,33 @@ Establish a connection to a MySQL/MariaDB database.
 - `MySQL.Connection`: A connection object to the database.
 """
 function establish_connection(host::String, user::String, password::String, dbname::String; port::Int=3306)
+    # Establish connection
     conn = MySQL.Connection(host, user, password, dbname, port, "nothing")
+    # Temporarily increase max_allowed_packet
+    size_query = "SET SESSION max_allowed_packet=1073741824;"  # Sets max_allowed_packet to 1GB
+    timeout_query = "SET SESSION wait_timeout = 31536000;"     # Sets wait_timeout to 1 year
+    maxtime_query = "SET SESSION max_execution_time = 604800000;"  # Sets max_execution_time to 1 week
+    try
+        # Execute session variable adjustments
+        DBInterface.execute(conn, size_query)
+    catch ex
+        @error "Failed to set session variables for query $size_query with expection " exception=(ex, catch_backtrace())
+        # Handle error, possibly rethrow or clean up
+    end
+    try
+        # Execute session variable adjustments
+        DBInterface.execute(conn, timeout_query)
+    catch ex
+        @error "Failed to set session variables for query $timeout_query with expection " exception=(ex, catch_backtrace())
+        # Handle error, possibly rethrow or clean up
+    end
+    try
+        # Execute session variable adjustments
+        DBInterface.execute(conn, maxtime_query)
+    catch ex
+        @error "Failed to set session variables for query $maxtime_query with expection " exception=(ex, catch_backtrace())
+        # Handle error, possibly rethrow or clean up
+    end
     return conn
 end
 
@@ -39,6 +65,7 @@ Each column in the DataFrame is of type `String`.
 - It converts all columns in the query result to `String` to avoid type interpretation issues.
 """
 function query_connection(conn::MySQL.Connection, query::String)
+    #println("Executing query: ", query)
     cursor = DBInterface.execute(conn, query)
     cursor.types = [String for _ in cursor.types]
     rows = Tables.rows(cursor)