ADR-0002: Channel INACTIVE versus SUSPENDED
Status
Accepted. The schema comment states the rule. The sync processor writes SUSPENDED.
Context
Sync fails for two different reasons: a person turns a channel off, and the circuit breaker stops a failing connection. One status cannot express both without losing the distinction.
Decision
INACTIVEis only for an explicit user update. Automated code must not writeINACTIVE, and must not turn an inactive channel back toACTIVE.SUSPENDEDis for the sync circuit breaker.- Both stop sync.
Thresholds in the processor: 5 consecutive non-transient failures of one sync type inside 6 hours, or 2 auth-shaped failures in that window.
Alternatives
Not recorded.
Consequences
- Operators need a way to leave
SUSPENDED. That procedure was not found. Do not implement it by writingINACTIVE. - Docs and UI copy must not treat the two words as synonyms.
Related code
21-channel.prisma- Sync processor under
src/workers(evaluateCircuitBreakerin the sync job processor) - Channels