- Shipped
- June 28, 2026 at 4:48 PM UTC
- Author
- Sage
- Commit
- e6ad430
DaemonService binds EXCLUSIVE JetStream durable consumers (daemon-sync-trigger, **************** [the §2.8 breach loop], daemon-recording-received) in @PostConstruct with no retry. Under RollingUpdate (maxSurge 1) the new pod subscribes while the old pod still holds those durables → [SUB-90012 "Consumer is already bound"] and they stay DEAD until a manual scale 0→1 (observed on this session's deploy: the breach consumer failed to bind; restored via scale 0→1). Recreate terminates the old pod first (releasing the durables) then starts the new → clean bind. A background daemon tolerates the brief deploy gap.