diff --git a/packages/desktop-client/src/components/App.tsx b/packages/desktop-client/src/components/App.tsx
index 0b4ea838eefa11008f547e7c19091780ec01c067..5fc229e140bda313fdf690bb95b98f1e55d52266 100644
--- a/packages/desktop-client/src/components/App.tsx
+++ b/packages/desktop-client/src/components/App.tsx
@@ -77,7 +77,7 @@ function AppInner({ budgetId, cloudFileId }: AppInnerProps) {
   }, []);
 
   useEffect(() => {
-    global.Actual.updateAppMenu(!!budgetId);
+    global.Actual.updateAppMenu(budgetId);
   }, [budgetId]);
 
   return (
diff --git a/packages/desktop-electron/index.js b/packages/desktop-electron/index.js
index d8e033352170786bae4732fe96e0abc12e5fa6c4..909a0cc7f8f861252dcc1a09a35eb27c2a7a073d 100644
--- a/packages/desktop-electron/index.js
+++ b/packages/desktop-electron/index.js
@@ -137,7 +137,7 @@ async function createWindow() {
 
   win.on('closed', () => {
     clientWin = null;
-    updateMenu(false);
+    updateMenu();
     unlistenToState();
   });
 
@@ -187,13 +187,17 @@ function isExternalUrl(url) {
   return !url.includes('localhost:') && !url.includes('app://');
 }
 
-function updateMenu(isBudgetOpen) {
+function updateMenu(budgetId) {
+  const isBudgetOpen = !!budgetId;
   const menu = getMenu(isDev, createWindow);
   const file = menu.items.filter(item => item.label === 'File')[0];
   const fileItems = file.submenu.items;
   fileItems
     .filter(item => item.label === 'Load Backup...')
-    .map(item => (item.enabled = isBudgetOpen));
+    .forEach(item => {
+      item.enabled = isBudgetOpen;
+      item.budgetId = budgetId;
+    });
 
   const tools = menu.items.filter(item => item.label === 'Tools')[0];
   tools.submenu.items.forEach(item => {
@@ -362,8 +366,8 @@ ipcMain.on('apply-update', () => {
   updater.apply();
 });
 
-ipcMain.on('update-menu', (event, isBudgetOpen) => {
-  updateMenu(isBudgetOpen);
+ipcMain.on('update-menu', (event, budgetId) => {
+  updateMenu(budgetId);
 });
 
 ipcMain.on('set-theme', theme => {
diff --git a/packages/desktop-electron/menu.js b/packages/desktop-electron/menu.js
index b6fa34657d18a87d06b40ec50cf563d0785cf100..fc274511851f2393eb61860fd86cb54876325971 100644
--- a/packages/desktop-electron/menu.js
+++ b/packages/desktop-electron/menu.js
@@ -12,7 +12,7 @@ function getMenu(isDev, createWindow) {
             if (focusedWindow) {
               if (focusedWindow.webContents.getTitle() === 'Actual') {
                 focusedWindow.webContents.executeJavaScript(
-                  "__actionsForMenu.replaceModal('load-backup')",
+                  `__actionsForMenu.replaceModal('load-backup', { budgetId: '${item.budgetId}' })`,
                 );
               }
             }
diff --git a/packages/desktop-electron/preload.js b/packages/desktop-electron/preload.js
index 2625c58a85b0519af1da6ecc7b8ba1727717d352..f5f63f059a0d38c4e8558cb214c5f8de8adb79bb 100644
--- a/packages/desktop-electron/preload.js
+++ b/packages/desktop-electron/preload.js
@@ -49,8 +49,8 @@ contextBridge.exposeInMainWorld('Actual', {
     ipcRenderer.send('apply-update');
   },
 
-  updateAppMenu: isBudgetOpen => {
-    ipcRenderer.send('update-menu', isBudgetOpen);
+  updateAppMenu: budgetId => {
+    ipcRenderer.send('update-menu', budgetId);
   },
 
   getServerSocket: () => {
diff --git a/upcoming-release-notes/2580.md b/upcoming-release-notes/2580.md
new file mode 100644
index 0000000000000000000000000000000000000000..325aa1f1a9937633d6a2482b74a8b82fd4343c7b
--- /dev/null
+++ b/upcoming-release-notes/2580.md
@@ -0,0 +1,6 @@
+---
+category: Bugfix
+authors: [mikesglitch]
+---
+
+Fix "Load backup" functionality in Electron - no longer throwing fatal error