Found while fixing QRun-IO/qbit-slack#13. qbit-slack's health indicator reported an unconfigured Slack app as DOWN, which failed kof22's readiness probe.
qbit-email isn't affected in the same way. EmailHealthChecks is a DEPENDENCY check, so it never runs in a probe, and an incomplete configuration reports DEGRADED, not DOWN (EmailHealthChecks.java, "Email configuration incomplete").
The core HEALTH spec (section 3.2) says UNKNOWN is for "cannot tell (not configured, disabled upstream)". When no email provider is configured at all, the check should return HealthCheckOutcome.unknown("Email is not configured"). Partial or invalid configuration should stay DEGRADED or DOWN. That way an optional, unset integration doesn't show as degraded in the central health views.
Found while fixing QRun-IO/qbit-slack#13. qbit-slack's health indicator reported an unconfigured Slack app as DOWN, which failed kof22's readiness probe.
qbit-email isn't affected in the same way. `EmailHealthChecks` is a DEPENDENCY check, so it never runs in a probe, and an incomplete configuration reports **DEGRADED**, not DOWN (`EmailHealthChecks.java`, "Email configuration incomplete").
The core HEALTH spec (section 3.2) says UNKNOWN is for "cannot tell (not configured, disabled upstream)". When **no** email provider is configured at all, the check should return `HealthCheckOutcome.unknown("Email is not configured")`. Partial or invalid configuration should stay DEGRADED or DOWN. That way an optional, unset integration doesn't show as degraded in the central health views.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Found while fixing QRun-IO/qbit-slack#13. qbit-slack's health indicator reported an unconfigured Slack app as DOWN, which failed kof22's readiness probe.
qbit-email isn't affected in the same way.
EmailHealthChecksis a DEPENDENCY check, so it never runs in a probe, and an incomplete configuration reports DEGRADED, not DOWN (EmailHealthChecks.java, "Email configuration incomplete").The core HEALTH spec (section 3.2) says UNKNOWN is for "cannot tell (not configured, disabled upstream)". When no email provider is configured at all, the check should return
HealthCheckOutcome.unknown("Email is not configured"). Partial or invalid configuration should stay DEGRADED or DOWN. That way an optional, unset integration doesn't show as degraded in the central health views.🤖 Generated with Claude Code