feat: add comprehensive error handling and logging for vault settings save operations with permission error detection and detailed error messages in UI toast notifications
This commit is contained in:
@@ -46,14 +46,27 @@ def save_vault_settings() -> None:
|
||||
"""Persist vault settings to disk."""
|
||||
with _settings_lock:
|
||||
try:
|
||||
logger.info(f"Attempting to save settings to {_SETTINGS_PATH}")
|
||||
logger.info(f"Parent directory: {_SETTINGS_PATH.parent}")
|
||||
logger.info(f"Parent exists: {_SETTINGS_PATH.parent.exists()}")
|
||||
|
||||
_SETTINGS_PATH.parent.mkdir(parents=True, exist_ok=True)
|
||||
_SETTINGS_PATH.write_text(
|
||||
json.dumps(_vault_settings, indent=2, ensure_ascii=False),
|
||||
encoding="utf-8"
|
||||
)
|
||||
logger.info(f"Saved settings for {len(_vault_settings)} vaults")
|
||||
logger.info(f"Directory created/verified: {_SETTINGS_PATH.parent}")
|
||||
|
||||
content = json.dumps(_vault_settings, indent=2, ensure_ascii=False)
|
||||
logger.info(f"JSON content prepared ({len(content)} bytes)")
|
||||
|
||||
_SETTINGS_PATH.write_text(content, encoding="utf-8")
|
||||
logger.info(f"Successfully saved settings for {len(_vault_settings)} vaults to {_SETTINGS_PATH}")
|
||||
except PermissionError as e:
|
||||
logger.error(f"Permission denied writing to {_SETTINGS_PATH}: {e}")
|
||||
logger.error(f"Check that user has write permissions to {_SETTINGS_PATH.parent}")
|
||||
raise
|
||||
except Exception as e:
|
||||
logger.error(f"Failed to save vault settings: {e}")
|
||||
logger.error(f"Failed to save vault settings to {_SETTINGS_PATH}: {e}")
|
||||
logger.error(f"Error type: {type(e).__name__}")
|
||||
import traceback
|
||||
logger.error(f"Traceback: {traceback.format_exc()}")
|
||||
raise
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user