mirror of
https://github.com/tiennm99/coolify.git
synced 2026-07-20 22:20:27 +00:00
**Problem:** Deployment failure notifications were not being sent due to two bugs: 1. **Timing Issue in next() function:** - When failed() called next(FAILED), the database still had status "in_progress" - The notification check looked for ALREADY failed status (not found yet) - Status was updated AFTER the check, losing the notification 2. **Direct Status Update:** - Healthcheck failures directly updated status to FAILED - Bypassed next() entirely, no notification sent **Solution:** Refactored status transition logic with clear separation of concerns: - Moved notification logic AFTER status update (not before) - Created transitionToStatus() as single source of truth - Added completeDeployment() and failDeployment() for clarity - Extracted status-specific side effects into dedicated methods - Updated healthcheck failure to use failDeployment() **Benefits:** - ✅ Notifications sent for ALL failure scenarios - ✅ Clear, self-documenting method names - ✅ Single responsibility per method - ✅ Type-safe using enum instead of strings - ✅ Harder to bypass notification logic accidentally - ✅ Backward compatible (old next() preserved) **Changed:** - app/Jobs/ApplicationDeploymentJob.php (+101/-21 lines) Fixes #6911 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>