diff --git a/crates/goose/src/config/base.rs b/crates/goose/src/config/base.rs index e678e5d34d..ae3d96c046 100644 --- a/crates/goose/src/config/base.rs +++ b/crates/goose/src/config/base.rs @@ -802,11 +802,15 @@ impl Config { match &self.secrets { SecretStorage::Keyring { service } => { let json_value = serde_json::to_string(&values)?; - self.handle_keyring_operation( + match self.handle_keyring_operation( |entry| entry.set_password(&json_value), service, Some(&values), - )?; + ) { + Ok(_) => {} + Err(ConfigError::FallbackToFileStorage) => {} + Err(e) => return Err(e), + } } SecretStorage::File { path } => { let yaml_value = serde_yaml::to_string(&values)?; @@ -839,11 +843,15 @@ impl Config { match &self.secrets { SecretStorage::Keyring { service } => { let json_value = serde_json::to_string(&values)?; - self.handle_keyring_operation( + match self.handle_keyring_operation( |entry| entry.set_password(&json_value), service, Some(&values), - )?; + ) { + Ok(_) => {} + Err(ConfigError::FallbackToFileStorage) => {} + Err(e) => return Err(e), + } } SecretStorage::File { path } => { let yaml_value = serde_yaml::to_string(&values)?;