Production deployments using PostgreSQL should note the switch from psycopg2-binary to psycopg2, which requires system-level PostgreSQL client libraries to be present on the host.
Two new database migrations must be applied: 043_add_document_urls_to_warranties.sql (adds invoice_url, manual_url, other_document_url columns) and 044_create_warranty_claims_table.sql (creates warranty_claims table).
Update your .env file with DB_PORT if using a non-standard PostgreSQL port (see updated env.example).
Docker Compose files have been updated; redeploy containers to pick up new environment variable support.
Notable features
Warranty claims REST API with full lifecycle (Submitted, In Progress, Approved, Denied, Resolved, Cancelled)
URL support for invoices, manuals, and other documents alongside file uploads
Custom DB_PORT environment variable with fallback to 5432
Dockerfile entry point changed to 'gunicorn "backend:create_app()"' — custom deployment scripts or overrides referencing the old entry point must be updated.
Notable features
Environment variables take precedence over DB settings for OIDC, Apprise, email, and base URL
Modular Flask Blueprint backend architecture
Flask Application Factory (create_app()) with centralized config.py and extensions.py
Database migration 009z adds an early CREATEROLE grant to the database user, removing the need for superuser privileges during setup. Review migration order if you manage custom DB configurations.
Service worker cache name updated to warracker-cache-v20250119001 and Nginx headers updated to force fresh sw.js loading. Users may need to clear browser cache or allow the service worker to refresh on first load after upgrade.
Docker Compose startup sequence changed: redundant migration and permission commands removed. Verify custom docker-compose overrides are not relying on the removed commands.
Notable features
Flexible date format parsing for CSV imports (DD/MM/YYYY, MM-DD-YYYY, and more via dateutil.parser)
Expanded warranty duration support up to 999 months or 9999 days
Real-time tag updates across warranty cards, filter dropdowns, edit forms, and selected tag indicators
Service worker cache key has changed to warracker-cache-v20250118001; old caches will be purged automatically on deploy. No manual action required for end users, but self-hosters should ensure the updated service worker (sw.js) is served correctly.
Database migrations 039 and 041 update the language constraint — run migrations before deploying if managing schema manually.
Notable features
17-language support: Arabic (RTL), Czech, German, English, Spanish, Persian (RTL), French, Hindi, Italian, Japanese, Korean, Dutch, Portuguese, Russian, Ukrainian, Chinese Simplified, Chinese (Hong Kong)
Auto language detection from browser with real-time switching and no page reload
All users deploying new instances should upgrade immediately to ensure first-user registration works.
All upgrading users should back up their warranty data before upgrading.
After upgrading, clear browser data (cache/storage) for the Warracker instance to refresh the UI.
Breaking changes
Fresh deployments were completely broken: the first user could not register due to a missing logger import and premature is_owner column access, resulting in 500 Internal Server Errors.
The first registered user is automatically designated as the immutable Owner after migration 031_add_owner_role.sql runs — review which account this will be before upgrading.
New database migrations required: 031_add_owner_role.sql, 032_add_apprise_notification_mode.sql, 033_add_apprise_warranty_scope.sql, 034_add_currency_position_column.sql.
Authentication routes have been refactored into a Flask Blueprint; Dockerfile was updated — custom deployment configs that reference auth routes may need review.
Security fixes
OIDC-only login mode enforcement — hides local auth forms, forces SSO for all users
Fixed gevent RecursionError (maximum recursion depth exceeded) during SSL operations with OIDC providers
New database migration required: 026_add_apprise_settings.sql (run automatically on upgrade).
docker-compose.yml and env.example updated with new Apprise environment variable support — review env.example for new optional variables.
Service Worker cache name has been bumped; users may need to clear browser cache or wait for SW update to pick up versioned CSS/JS files.
Security fixes
Images on warranty cards are served securely, ensuring only authorized users can view product photos.
Admin-only settings endpoints are now protected on the frontend to prevent non-admin users from triggering unauthorized access errors; 403 responses are handled gracefully.
Notable features
Public global warranty view with read-only protection for non-owners
The About page version checker will incorrectly display the version as 0.9.x.x in this release. This is a cosmetic issue and does not affect core functionality; it will be corrected in the next release.
Notable features
SMTP STARTTLS support on port 587 with intelligent defaults (port 465 uses SMTP_SSL, port 587 uses SMTP+STARTTLS)
Fixed password change and reset reliability including missing /api/auth/password/change endpoint
Persistent view preference synchronization across sessions and browser tabs
New environment variable WARRACKER_MEMORY_MODE can be set to 'optimized' (~60MB) or 'ultra-light' for lower-resource deployments.
OIDC can now be configured via environment variables (OIDC_CLIENT_ID, OIDC_ISSUER_URL, etc.) — recommended for Docker deployments.
SSO-based account creation is now gated by the general registration toggle; ensure registration settings are configured as intended before upgrading to avoid locking out SSO users.
Notable features
OIDC Single Sign-On with dynamic client configuration and automatic user provisioning on first login
Provider-aware branding for SSO buttons (Google, Microsoft, GitHub with fallback)
Registration control toggle to block unauthorized SSO-based account creation