Warracker logo

Warracker

Open-source warranty tracker to monitor expirations and store receipts

Alternative to: sortly


About Versions (54)

0.10.1.9

2025-08-24

📦 Release 0.10.1.9 – Fixed Apprise Notifications, Scheduler Stability, and Email Config

This release delivers critical fixes to the Apprise notification system, ensures scheduler reliability across all Gunicorn modes, and adds better email configuration flexibility. Notifications are now stable, duplicate-free, and production-ready.


🔔 Fixed Apprise Notification System

✅ Critical Failures Resolved

  • Added configuration reload to ensure scheduled jobs use latest DB settings.
  • Removed faulty email-only filter that excluded Apprise users.
  • Refactored dispatch logic with dedicated helpers for email and Apprise.
  • Fixed handler scoping by retrieving Apprise handler from Flask app context.
  • Wrapped scheduler jobs in Flask app context to prevent context errors.

Result: Apprise notifications now send reliably for both “Apprise only” and “Both” channels. System follows Flask best practices and passes verification tests.


📧 Improved Email Configuration

✅ Custom Sender Address Support

  • Added support for SMTP_FROM_ADDRESS environment variable to customize the email From address independently of the SMTP username.
  • Contributed by @clmcavaney in #115.

Result: Greater flexibility when using email services with different auth vs. sender addresses.


🛡️ Fixed Duplicate Notifications

✅ Only One Scheduler Runs

  • Strengthened should_run_scheduler() logic.
  • Worker detection now ensures only worker-0 runs the scheduler in multi-worker setups.
  • Removed unsafe fallbacks that previously caused multiple schedulers.

Result: Exactly one notification is sent per event—no more duplicates across optimized or performance modes.


🗄️ Fixed Database Connection Handling

✅ Fresh Connections per Job

  • Refactored scheduler to acquire a fresh DB connection each run.
  • Connections now released safely with try/finally.

Result: No more “server closed the connection unexpectedly” errors. Notifications run reliably long-term.


⚙️ Definitive Scheduler Fix Across All Modes

✅ Works in Single and Multi-Worker Environments

  • Single-worker (ultra-light) now runs scheduler correctly when GUNICORN_WORKER_ID is unset.
  • Multi-worker (optimized/performance) ensures only worker-0 runs scheduler.

Result: Scheduler works consistently in every Docker mode—ultra-light, optimized, and performance.


Modified Files:

  • backend/notifications.py
  • backend/__init__.py
  • backend/app.py

This update brings full notification reliability across all environments and configurations. Both Apprise and Email notifications are stable, efficient, and production-ready. 🚀