diff --git a/qim3d/gui/data_explorer.py b/qim3d/gui/data_explorer.py
index 9c090fc07aa711387ea7d92ecbc6cc3d63eee3c5..15a744ca53a3f65597758700b886d14cc6868fba 100644
--- a/qim3d/gui/data_explorer.py
+++ b/qim3d/gui/data_explorer.py
@@ -15,19 +15,21 @@ app.launch()
 ```
 """
 
-import gradio as gr
-import numpy as np
-import os
-from qim3d.utils import internal_tools
-from qim3d.io import load
-from qim3d.io.logger import log
-import tifffile
-import outputformat as ouf
 import datetime
+import os
+
+import gradio as gr
 import matplotlib
 
 # matplotlib.use("Agg")
 import matplotlib.pyplot as plt
+import numpy as np
+import outputformat as ouf
+import tifffile
+
+from qim3d.io import load
+from qim3d.io.logger import log
+from qim3d.utils import internal_tools
 
 
 class Interface:
@@ -45,7 +47,6 @@ class Interface:
             "Z min projection",
             "Intensity histogram",
             "Data summary",
-
         ]
         # CSS path
         current_dir = os.path.dirname(os.path.abspath(__file__))
@@ -118,7 +119,7 @@ class Interface:
                                 value="⟳", elem_classes="btn-html h-36"
                             )
                     explorer = gr.FileExplorer(
-                        glob="{*/,}{*.*}",
+                        ignore_glob="*/.*", # ignores hidden files
                         root_dir=os.getcwd(),
                         label=os.getcwd(),
                         render=True,
@@ -406,8 +407,10 @@ class Pipeline:
                 virtual_stack=session.virtual_stack,
                 dataset_name=session.dataset_name,
             )
+            if session.vol.ndim != 3:
+                raise ValueError("Invalid data shape should be 3 dimensional, not shape: ", session.vol.shape)
         except Exception as error_message:
-            raise ValueError(
+            raise gr.Error(
                 f"Failed to load the image: {error_message}"
             ) from error_message
 
diff --git a/requirements.txt b/requirements.txt
index 6a865988cb39322da9a0590eae22683471698e38..6726c009330bcf15fb4fd5cb2df4e2ee32efdae3 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,5 +1,5 @@
 albumentations>=1.3.1,
-gradio>=4.15.0,
+gradio>=4.22.0,
 h5py>=3.9.0,
 localthickness>=0.1.2,
 matplotlib>=3.8.0,
diff --git a/setup.py b/setup.py
index 406df35536185a88fa8ca7a11aa1c79c673b4d64..e674b6d6735da589a5eb4e985b8b7bfb0f0bd7ce 100644
--- a/setup.py
+++ b/setup.py
@@ -1,6 +1,6 @@
-from setuptools import setup, find_packages
 import os
 
+from setuptools import find_packages, setup
 
 # Read the contents of your README file
 with open("README.md", "r", encoding="utf-8") as f:
@@ -38,7 +38,7 @@ setup(
     python_requires=">=3.10",
     install_requires=[
         "albumentations>=1.3.1",
-        "gradio>=4.15.0",
+        "gradio>=4.22.0",
         "h5py>=3.9.0",
         "localthickness>=0.1.2",
         "matplotlib>=3.8.0",