diff --git a/lxd/instance/drivers/driver_qemu.go b/lxd/instance/drivers/driver_qemu.go
index <HASH>..<HASH> 100644
--- a/lxd/instance/drivers/driver_qemu.go
+++ b/lxd/instance/drivers/driver_qemu.go
@@ -422,8 +422,15 @@ func (d *qemu) getMonitorEventHandler() func(event string, data map[string]inter
 
 		inst, err := instance.LoadByProjectAndName(state, projectName, instanceName)
 		if err != nil {
-			logger.Error("Failed to load instance", log.Ctx{"err": err})
-			return
+			// If DB not available, try loading from backup file.
+			logger.Warn("Failed loading instance from database, trying backup file", log.Ctx{"err": err})
+
+			instancePath := filepath.Join(shared.VarPath("virtual-machines"), project.Instance(projectName, instanceName))
+			inst, err = instance.LoadFromBackup(state, projectName, instancePath, false)
+			if err != nil {
+				logger.Error("Failed loading instance", log.Ctx{"err": err})
+				return
+			}
 		}
 
 		if event == "RESET" {
lxd/instance/drivers/driver/qemu: Update getMonitorEventHandler to try and load instance from backup if DB not available