Index: components/BuildDetailsDialog.tsx
===================================================================
--- components/BuildDetailsDialog.tsx	(revision f72725276adbe73846f24a98b24485847de7ecd6)
+++ components/BuildDetailsDialog.tsx	(revision 4f2900a42af738556efd5fd79be1f104639d6108)
@@ -2,5 +2,5 @@
 import {
     Dialog, DialogTitle, DialogContent, DialogActions, Button, Box, Typography,
-    IconButton, Tab, Tabs, Table, TableBody, TableCell, TableRow, Rating, TextField, Avatar, Chip, Alert
+    IconButton, Tab, Tabs, Table, TableBody, TableCell, TableRow, Rating, TextField, Avatar, Chip, Alert, Snackbar
 } from '@mui/material';
 import CloseIcon from '@mui/icons-material/Close';
@@ -34,4 +34,14 @@
     const [ratingVal, setRatingVal] = useState(5);
 
+    const [snackbar, setSnackbar] = useState<{
+        open: boolean;
+        message: string;
+        severity: 'error' | 'warning' | 'info' | 'success';
+    }>({
+        open: false,
+        message: '',
+        severity: 'warning'
+    });
+
     useEffect(() => {
         if (open && buildId !== null) {
@@ -95,4 +105,9 @@
         if (!cloningBuildId) return;
 
+        if(!currentUser){
+            window.location.href="/auth/login";
+            return;
+        }
+
         try {
             const newBuildId = await onCloneBuild({buildId: cloningBuildId});
@@ -101,7 +116,23 @@
             setCloningBuildId(null);
         } catch (e) {
-            alert("Failed to clone build. Please try again.");
+            // alert("Failed to clone build. Please try again.");
+            setCloneDialogOpen(false);
+            setSnackbar({
+                open: true,
+                message: 'Failed to clone build. Please try again!',
+                severity: 'error'
+            })
         }
     };
+
+    const handleCloneClick = () => {
+        if(!currentUser){
+            window.location.href="/auth/login";
+            return;
+        }
+
+        setCloningBuildId(details.id);
+        setCloneDialogOpen(true);
+    }
 
     if (!open) return null;
@@ -242,8 +273,5 @@
                                                         size="large"
                                                         startIcon={<AutoFixHighIcon/>}
-                                                        onClick={() => {
-                                                            setCloningBuildId(details.id);
-                                                            setCloneDialogOpen(true);
-                                                        }}
+                                                        onClick={handleCloneClick}
                                                     >
                                                         Clone & Edit
@@ -362,4 +390,19 @@
                 </DialogActions>
             </Dialog>
+            <Snackbar
+                open={snackbar.open}
+                autoHideDuration={5000}
+                onClose={() => setSnackbar(prev => ({...prev, open: false}))}
+                anchorOrigin={{vertical: 'bottom', horizontal: 'center'}}
+            >
+                <Alert
+                    onClose={() => setSnackbar(prev => ({...prev, open: false}))}
+                    severity={snackbar.severity}
+                    variant="filled"
+                    sx={{width: '100%'}}
+                >
+                    {snackbar.message}
+                </Alert>
+            </Snackbar>
         </>
     );
