diff --git a/.changeset/fix-token-dir-error-propagation.md b/.changeset/fix-token-dir-error-propagation.md new file mode 100644 index 00000000..16d1ad32 --- /dev/null +++ b/.changeset/fix-token-dir-error-propagation.md @@ -0,0 +1,5 @@ +--- +"gws": patch +--- + +Fix auth error propagation: properly propagate errors when token directory creation or permission setting fails, instead of silently ignoring them diff --git a/src/token_storage.rs b/src/token_storage.rs index 8b63e61b..5fb17a00 100644 --- a/src/token_storage.rs +++ b/src/token_storage.rs @@ -82,11 +82,25 @@ impl EncryptedTokenStorage { let encrypted = crate::credential_store::encrypt(json.as_bytes())?; if let Some(parent) = self.file_path.parent() { - let _ = tokio::fs::create_dir_all(parent).await; + tokio::fs::create_dir_all(parent).await.map_err(|e| { + anyhow::anyhow!( + "Failed to create token directory '{}': {}", + sanitize_for_terminal(&parent.display().to_string()), + e + ) + })?; #[cfg(unix)] { use std::os::unix::fs::PermissionsExt; - let _ = std::fs::set_permissions(parent, std::fs::Permissions::from_mode(0o700)); + tokio::fs::set_permissions(parent, std::fs::Permissions::from_mode(0o700)) + .await + .map_err(|e| { + anyhow::anyhow!( + "Failed to set permissions on token directory '{}': {}", + sanitize_for_terminal(&parent.display().to_string()), + e + ) + })?; } }