diff --git a/apps/canvas/front/src/Messages.tsx b/apps/canvas/front/src/Messages.tsx
index 94cd42e..ecf7777 100644
--- a/apps/canvas/front/src/Messages.tsx
+++ b/apps/canvas/front/src/Messages.tsx
@@ -8,7 +8,7 @@
 export function Messages() {
     const store = useStateStore();
     const nodes = useNodes<AppNode>();
-    const [nodeMap, setNodeMap] = useState<Map<string, AppNode>>();
+    const [nodeMap, setNodeMap] = useState<Map<string, AppNode>>(new Map());
     useEffect(() => {
         setNodeMap(new Map(nodes.map((n) => [n.id, n])));
     }, [nodes, setNodeMap]);
@@ -37,22 +37,22 @@
         setOpen([...grouped.keys()]);
     }, [grouped, setOpen]);
     return (
-            <Accordion type="multiple" value={open} onValueChange={(v) => setOpen(v)}>
-                {[...grouped.entries()].map(([id, messages]) => (
-                    <AccordionItem key={id} value={id}>
-                        <AccordionTrigger className="flex flex-row-reverse !space-x-4 !justify-end">
-                            <Badge>{messages.length}</Badge>
-                            <div>{id === "global" ? "Global" : nodeLabel(nodeMap?.get(id)!)}</div>
-                        </AccordionTrigger>
-                        <AccordionContent>
-                            <div className="flex flex-col space-y-1">
-                                {messages.map((m) => (
-                                    <Button key={m.id} variant="ghost" style={{ justifyContent: "flex-start" }} onMouseOver={onClick(m.onHighlight)} onMouseLeave={onClick(m.onLooseHighlight)} onClick={onClick(m.onClick)}>{m.message}</Button>
-                                ))}
-                            </div>
-                        </AccordionContent>
-                    </AccordionItem>
-                ))}
-            </Accordion>
+        <Accordion type="multiple" value={open} onValueChange={(v) => setOpen(v)}>
+            {[...grouped.entries()].map(([id, messages]) => (
+                <AccordionItem key={id} value={id}>
+                    <AccordionTrigger className="flex flex-row-reverse !space-x-4 !justify-end">
+                        <Badge>{messages.length}</Badge>
+                        <div>{id === "global" ? "Global" : nodeLabel(nodeMap.get(id)!)}</div>
+                    </AccordionTrigger>
+                    <AccordionContent>
+                        <div className="flex flex-col space-y-1">
+                            {messages.map((m) => (
+                                <Button key={m.id} variant="ghost" style={{ justifyContent: "flex-start" }} onMouseOver={onClick(m.onHighlight)} onMouseLeave={onClick(m.onLooseHighlight)} onClick={onClick(m.onClick)}>{m.message}</Button>
+                            ))}
+                        </div>
+                    </AccordionContent>
+                </AccordionItem>
+            ))}
+        </Accordion>
     )
 }
\ No newline at end of file
