diff --git a/libs/shared/lib/vis/visualizations/vis0D/Vis0D.tsx b/libs/shared/lib/vis/visualizations/vis0D/Vis0D.tsx
index d43d86256b52b9b6bd7a151e5f4468c99dbfd05c..15a2c6511d60e9ccf03ff15bd8900fa74fa558ba 100644
--- a/libs/shared/lib/vis/visualizations/vis0D/Vis0D.tsx
+++ b/libs/shared/lib/vis/visualizations/vis0D/Vis0D.tsx
@@ -68,15 +68,16 @@ const Vis0D = forwardRef<Vis0DVisHandle, VisualizationPropTypes<Vis0DProps>>(({
   useEffect(() => {
     if (settings.selectedEntity != '' && graphMetadata.nodes.types && settings.selectedAttribute != '' && settings.selectedStat != '') {
       const nodesLabels = graphMetadata.nodes.labels;
+      const edgesLabels = graphMetadata.edges.labels;
 
-      let attributes = [];
+      let attributes: string[] = [];
       if (nodesLabels.includes(settings.selectedEntity)) {
         attributes = Object.keys(graphMetadata.nodes.types[settings.selectedEntity].attributes);
-      } else {
+      } else if (edgesLabels.includes(settings.selectedEntity)) {
         attributes = Object.keys(graphMetadata.edges.types[settings.selectedEntity].attributes);
       }
 
-      if (attributes.includes(settings.selectedAttribute)) {
+      if (attributes.length > 0 && attributes.includes(settings.selectedAttribute)) {
         let statsAvailable = [];
 
         if (nodesLabels.includes(settings.selectedEntity)) {
@@ -126,7 +127,6 @@ const Vis0D = forwardRef<Vis0DVisHandle, VisualizationPropTypes<Vis0DProps>>(({
 const Vis0DSettings = ({ settings, graphMetadata, updateSettings }: VisualizationSettingsPropTypes<Vis0DProps>) => {
   const [attributeOptions, setAttributeOptions] = useState<string[]>([]);
   const [statsOptions, setStatsOptions] = useState<string[]>([]);
-
   useEffect(() => {
     if (settings.selectedEntity === '' && graphMetadata && graphMetadata.nodes && graphMetadata.nodes.labels.length > 0) {
       const firstEntity = graphMetadata.nodes.labels[0];
@@ -156,18 +156,23 @@ const Vis0DSettings = ({ settings, graphMetadata, updateSettings }: Visualizatio
       graphMetadata.nodes.labels.length > 0
     ) {
       const nodesLabels = graphMetadata.nodes.labels;
+      const edgesLabels = graphMetadata.edges.labels;
 
       // attribute management
-      let attributesFirstEntity = [];
+      let attributesFirstEntity: string[] = [];
       if (nodesLabels.includes(settings.selectedEntity)) {
         attributesFirstEntity = Object.keys(graphMetadata.nodes.types[settings.selectedEntity].attributes);
-      } else {
+      } else if (edgesLabels.includes(settings.selectedEntity)) {
         attributesFirstEntity = Object.keys(graphMetadata.edges.types[settings.selectedEntity].attributes);
       }
       setAttributeOptions(attributesFirstEntity);
       let selectedAttribute = '';
 
-      if (settings.selectedAttribute === '' || !attributesFirstEntity.includes(settings.selectedAttribute)) {
+      if (
+        settings.selectedAttribute === '' ||
+        !attributesFirstEntity.includes(settings.selectedAttribute) ||
+        attributesFirstEntity.length === 0
+      ) {
         selectedAttribute = attributesFirstEntity[0];
         updateSettings({ selectedAttribute: selectedAttribute });
       } else {
@@ -182,7 +187,7 @@ const Vis0DSettings = ({ settings, graphMetadata, updateSettings }: Visualizatio
           string,
           number
         >;
-      } else {
+      } else if (edgesLabels.includes(settings.selectedEntity)) {
         attributeSelectedStatistics = graphMetadata.edges.types[settings.selectedEntity].attributes[selectedAttribute].statistics as Record<
           string,
           number