proactive-dm-service: Known Failure Modes
proactive-dm-service listens for research.topic.complete events and sends proactive DMs to subscribed users about new research findings.
COMMON FAILURES:
1. research.source.ingested handler is inactive (is_active=0 by design): Intentional. Proactive DMs fire on research.topic.complete, not individual sources.
2. User not subscribed / no notification preference: research.topic.complete fires but user has opted out. Check user notification preferences.
3. Telegram send failure: If Telegram rate-limits, DMs are dropped. Check proactive-dm-service logs for Telegram API errors.