diff --git a/apps/canvas/front/src/Messages.tsx b/apps/canvas/front/src/Messages.tsx
index 8cd6652..0701afb 100644
--- a/apps/canvas/front/src/Messages.tsx
+++ b/apps/canvas/front/src/Messages.tsx
@@ -1,5 +1,5 @@
 import { Button } from "./components/ui/button";
-import { AppNode, AppState, Message, nodeLabel, useMessages } from "./lib/state";
+import { AppNode, AppState, Message, nodeLabel, useMessages, useProjectId } from "./lib/state";
 import { useCallback, useEffect, useState } from "react";
 import { useNodes } from "@xyflow/react";
 import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "./components/ui/accordion";
@@ -8,6 +8,7 @@
 
 export function Messages() {
 	const nodes = useNodes<AppNode>();
+	const projectId = useProjectId();
 	const [nodeMap, setNodeMap] = useState<Map<string, AppNode>>(new Map());
 	useEffect(() => {
 		setNodeMap(new Map(nodes.map((n) => [n.id, n])));
@@ -24,14 +25,25 @@
 	const [grouped, setGrouped] = useState<Map<string, Message[]>>(new Map());
 	useEffect(() => {
 		const g = new Map<string, Message[]>();
-		messages.forEach((m) => {
-			const id = m.nodeId || "global";
-			const existing: Message[] = g.get(id) || [];
-			existing.push(m);
-			g.set(id, existing);
-		});
+		if (projectId == null) {
+			g.set("global", [
+				{
+					id: "global",
+					nodeId: undefined,
+					message: "Create a new project or select existing one to get started",
+					type: "FATAL",
+				},
+			]);
+		} else {
+			messages.forEach((m) => {
+				const id = m.nodeId || "global";
+				const existing: Message[] = g.get(id) || [];
+				existing.push(m);
+				g.set(id, existing);
+			});
+		}
 		setGrouped(g);
-	}, [messages, setGrouped]);
+	}, [projectId, messages, setGrouped]);
 	const [open, setOpen] = useState<string[]>([...grouped.keys()]);
 	useEffect(() => {
 		// TODO(gio): do not reopen closed ones
