@@ -17,6 +17,7 @@ use std::{
18use crate::{
18use crate::{
19 config::CONFIG_PATH_ENV,
19 config::CONFIG_PATH_ENV,
20+ instance::STATUS_FILE_NAME,
20 instance::VM_ROOT_LOG_NAME,
21 instance::VM_ROOT_LOG_NAME,
21 instance::{
22 instance::{
22 DEFAULT_SSH_USER, InstanceConfig, build_ssh_login_actions, ensure_instance_dir,
23 DEFAULT_SSH_USER, InstanceConfig, build_ssh_login_actions, ensure_instance_dir,
@@ -765,6 +766,10 @@ fn run_manager_with(
766 tracing::info!("vm manager vm run completed");
767 tracing::info!("vm manager vm run completed");
767 let vm_err = vm_result.err().map(|e| e.to_string());
768 let vm_err = vm_result.err().map(|e| e.to_string());
769+ if let Some(err) = &vm_err {
770+ let status_path = instance_dir.join(STATUS_FILE_NAME);
771+ let _ = fs::write(&status_path, format!("error: {err}"));
768 let _ = event_tx.send(ManagerEvent::VmExited(vm_err.clone()));
773 let _ = event_tx.send(ManagerEvent::VmExited(vm_err.clone()));
769 let event_loop_result: Result<(), String> = event_loop_handle
774 let event_loop_result: Result<(), String> = event_loop_handle