[{"data":1,"prerenderedAt":210},["ShallowReactive",2],{"doc-\u002Ftroubleshooting\u002Fmissing-alerts":3},{"id":4,"title":5,"body":6,"description":200,"edit":201,"extension":202,"meta":203,"navigation":204,"path":205,"seo":206,"stem":207,"vertical":201,"weight":208,"__hash__":209},"content\u002Ftroubleshooting\u002Fmissing-alerts.md","Missing alerts",{"type":7,"value":8,"toc":187},"minimark",[9,13,18,26,51,55,66,73,77,83,94,98,109,119,130,133,137,144,150,158,169,172,176],[10,11,12],"p",{},"You see a red bar on the chart but no message arrived. Below is the order\nin which you should check.",[14,15,17],"h2",{"id":16},"_1-did-the-alarm-actually-fire","1 · Did the alarm actually fire?",[10,19,20,21,25],{},"Open the channel's ",[22,23,24],"code",{},"Events"," tab. Two outcomes:",[27,28,29,37],"ul",{},[30,31,32,36],"li",{},[33,34,35],"strong",{},"Event with severity ALARM exists at the time of the red bar."," The\nalarm fired internally. The notification path is the problem. Go to 2.",[30,38,39,42,43,46,47,50],{},[33,40,41],{},"No event for the red bar."," The alarm did not fire because either\n(a) the channel was in ",[22,44,45],{},"grace",", (b) the rule was disabled, (c) the\nrule is ",[22,48,49],{},"[ok_min, ok_max]"," and the reading was still in range —\nperhaps a different rule put the chart red. Read the rule. If the\nrule is wrong, edit it.",[14,52,54],{"id":53},"_2-was-the-telegram-delivery-rate-limited","2 · Was the Telegram delivery rate-limited?",[10,56,57,58,61,62,65],{},"OpenSense rate-limits Telegram notifications ",[33,59,60],{},"per chat"," at 1 message\nper 10 s (Telegram's bot API limit is 1 \u002F s, but we add headroom for\ngroups). If you fired ten alarms in one minute, six landed and four are\nqueued. The dashboard's ",[22,63,64],{},"Outbound"," log shows the queue.",[10,67,68,69,72],{},"For HACCP this happens when the fridge door is propped open and a\ndozen channels trip in cascade. Solution: configure a ",[33,70,71],{},"digest"," policy\non the channel (\"notify once per 30 min if state has not changed\"), not\nper-event.",[14,74,76],{"id":75},"_3-is-the-telegram-bot-still-connected","3 · Is the Telegram bot still connected?",[10,78,79,80,82],{},"If you ever changed the bot's API token, the existing connection is dead\nsilently. Symptom: ",[22,81,64],{}," shows entries with HTTP 401.",[10,84,85,86,89,90,93],{},"Re-link the chat: in OpenSense, ",[22,87,88],{},"Account → Integrations → Telegram → Re-link",". Send ",[22,91,92],{},"\u002Fstart"," to the bot from the destination chat again.",[14,95,97],{"id":96},"_4-is-the-email-caught-by-spam","4 · Is the email caught by spam?",[10,99,100,101,104,105,108],{},"The first email from a new account often lands in Gmail's ",[22,102,103],{},"Updates","\ntab or Outlook's ",[22,106,107],{},"Other",". Common signs:",[27,110,111,114],{},[30,112,113],{},"Telegram works but email does not.",[30,115,116,118],{},[22,117,64],{}," shows email entries as 200 OK (we handed off to the SMTP\nrelay successfully), but the user did not see them.",[10,120,121,122,125,126,129],{},"Add ",[22,123,124],{},"alerts@opensense.murzin.digital"," to the contacts in the destination\nmailbox. Mark one of our messages as ",[22,127,128],{},"Not spam",".",[10,131,132],{},"If the entire org's mail server rejects us (550, 553, 554), check that\nyour IT has not blacklisted Hetzner-hosted senders. We have SPF, DKIM\nand DMARC set up correctly; if a downstream filter still drops us, we\ncan route through a SendGrid trunk on request.",[14,134,136],{"id":135},"_5-is-the-webhook-hanging","5 · Is the webhook hanging?",[10,138,139,140,143],{},"If you configured a webhook destination (POST to your incident system),\ncheck that endpoint's logs. OpenSense times out at ",[33,141,142],{},"5 s"," per request.\nSlow webhooks pile up in the outbound queue.",[10,145,146,147,149],{},"We retry on 5xx with exponential backoff (5 s, 30 s, 5 min, 30 min,\n1 h, 6 h), then drop. The ",[22,148,64],{}," log shows the retry history.",[14,151,153,154,157],{"id":152},"_6-was-the-channel-in-silenced-state","6 · Was the channel in ",[22,155,156],{},"silenced"," state?",[10,159,160,161,164,165,168],{},"OpenSense supports a per-channel ",[33,162,163],{},"silence window"," (we do not call it\n",[22,166,167],{},"muting"," because that word reads like the alarm did not fire; here the\nalarm fires, it just does not notify). If a silence window covers the\nevent, no notification is sent. The audit trail still records the\nalarm.",[10,170,171],{},"Use silence windows for known maintenance: defrost cycles, planned\npower-down. Avoid silence windows for \"I am tired of the dishwasher\nalarm\" — that is what the digest policy is for.",[14,173,175],{"id":174},"_7-is-it-the-rules-grace-period","7 · Is it the rule's grace period?",[10,177,178,179,182,183,186],{},"A channel with a 30-minute grace period does not fire when it briefly\nspikes for 5 minutes. If you see red bars on the chart that are\nshorter than the grace period, that is by design — the chart shows\nthe ",[33,180,181],{},"reading"," state, the alarm log shows the ",[33,184,185],{},"rule"," state, and\nthey are not the same.",{"title":188,"searchDepth":189,"depth":189,"links":190},"",3,[191,193,194,195,196,197,199],{"id":16,"depth":192,"text":17},2,{"id":53,"depth":192,"text":54},{"id":75,"depth":192,"text":76},{"id":96,"depth":192,"text":97},{"id":135,"depth":192,"text":136},{"id":152,"depth":192,"text":198},"6 · Was the channel in silenced state?",{"id":174,"depth":192,"text":175},"Channel went red, no Telegram fired",null,"md",{},true,"\u002Ftroubleshooting\u002Fmissing-alerts",{"title":5,"description":200},"troubleshooting\u002Fmissing-alerts",430,"Eph82ryOh_7KKGV2C_Em5Btnu6WGZiiXDy_E143bcrs",1779022955384]