diff --git a/libs/shared/lib/vis/nodelink/components/NLPixi.tsx b/libs/shared/lib/vis/nodelink/components/NLPixi.tsx
index 5c1f98bdaf26bc777a463bd05b90edba7cfd005e..bc8117f36da8c9b27049d1c14da04d8064e0e176 100644
--- a/libs/shared/lib/vis/nodelink/components/NLPixi.tsx
+++ b/libs/shared/lib/vis/nodelink/components/NLPixi.tsx
@@ -155,7 +155,7 @@ export const NLPixi = (props: Props) => {
 
   function onDragStart(event: FederatedPointerEvent, node: NodeType, gfx: Graphics) {
     event.stopPropagation();
-    imperative.current.onDragStart(node, gfx);
+    if (imperative.current) imperative.current.onDragStart(node, gfx);
   }
 
   function onDragMove(event: FederatedPointerEvent) {
@@ -165,7 +165,7 @@ export const NLPixi = (props: Props) => {
 
   function onDragEnd(event: FederatedPointerEvent) {
     event.stopPropagation();
-    imperative.current.onDragEnd();
+    if (imperative.current) imperative.current.onDragEnd();
   }
 
   const updateNode = (node: NodeType) => {
@@ -195,11 +195,11 @@ export const NLPixi = (props: Props) => {
     gfx.off('mousedown');
     gfx.on('mouseover', (e) => {
       e.stopPropagation();
-      imperative.current.onHover(node);
+      if (imperative.current) imperative.current.onHover(node);
     });
     gfx.on('mouseout', (e) => {
       e.stopPropagation();
-      imperative.current.onUnHover();
+      if (imperative.current) imperative.current.onUnHover();
     });
     gfx.on('mousedown', (e) => onDragStart(e, node, gfx));
 
@@ -330,7 +330,7 @@ export const NLPixi = (props: Props) => {
   };
 
   useEffect(() => {
-    if (props.graph && ref.current && ref.current.children.length > 0) {
+    if (props.graph && ref.current && ref.current.children.length > 0 && imperative.current) {
       if (!isSetup.current) setup();
       else update();
       // setup();