<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Debug - Tag - arleo.eu</title><link>https://www.arleo.eu/en/tags/debug/</link><description>Debug - Tag - arleo.eu</description><generator>Hugo -- gohugo.io</generator><language>en</language><lastBuildDate>Mon, 25 May 2026 20:51:17 +0200</lastBuildDate><atom:link href="https://www.arleo.eu/en/tags/debug/" rel="self" type="application/rss+xml"/><item><title>Postmortem — CrowdSec AppSec: Heuristic False Positive on Sonarr/Radarr</title><link>https://www.arleo.eu/en/posts/postmortem-crowdsec-appsec-false-positive-sonarr/</link><pubDate>Mon, 25 May 2026 20:51:17 +0200</pubDate><author>Jmr</author><guid>https://www.arleo.eu/en/posts/postmortem-crowdsec-appsec-false-positive-sonarr/</guid><description><![CDATA[<div class="featured-image">
                <img src="/images/postmortem-crowdsec-appsec-false-positive-sonarr-featured.jpg" referrerpolicy="no-referrer">
            </div><h2 id="summary">Summary</h2>
<p>On <strong>May 25, 2026 at around 10:02 PM (local time)</strong>, Sonarr and Radarr became completely inaccessible from the home IP (<code>82.XX.XX.XX</code>), returning <strong>403</strong> on every URL including <code>/login</code>. The service was fully operational. Initial suspicion fell on the day&rsquo;s <code>crowdsec-cf-sync</code> refactor deployment — the real cause was a <strong>CrowdSec AppSec heuristic false positive</strong>.</p>
<hr>
<h2 id="timeline">Timeline</h2>
<table>
  <thead>
      <tr>
          <th>Time (local)</th>
          <th>Event</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>~10:00 PM</td>
          <td>Sonarr browser session cookie expired</td>
      </tr>
      <tr>
          <td>10:02:31 PM</td>
          <td>Browser loads Sonarr library → attempts to fetch 20+ <code>/MediaCover/*.jpg</code> simultaneously</td>
      </tr>
      <tr>
          <td>10:02:31 PM</td>
          <td>Sonarr returns 302 → <code>/login</code> for each image (invalid session)</td>
      </tr>
      <tr>
          <td>10:02:34 PM</td>
          <td>SignalR WebSocket connection succeeds (101) via <code>access_token</code> in URL</td>
      </tr>
      <tr>
          <td>~10:05 PM</td>
          <td>CrowdSec AppSec triggers heuristic rule <code>http-probing</code>: burst of failed requests from same IP</td>
      </tr>
      <tr>
          <td>10:11:37 PM</td>
          <td>All requests from <code>82.XX.XX.XX</code> return 403 — <code>cs_reason=heuristic</code> in nginx logs</td>
      </tr>
      <tr>
          <td>10:13:34 PM</td>
          <td>Even <code>/login</code> is blocked — IP cannot authenticate</td>
      </tr>
  </tbody>
</table>
<hr>
<h2 id="root-cause">Root Cause</h2>
<p>CrowdSec AppSec maintains an <strong>in-memory heuristic state</strong>, separate from LAPI decisions. When the browser simultaneously tries to load many resources and receives 302/403 from the upstream application (Sonarr), AppSec interprets the burst of failures as aggressive probing (<code>http-probing</code>) and blocks the source IP.</p>]]></description></item><item><title>Postmortem: TypeIt broken by Mermaid in LoveIt theme</title><link>https://www.arleo.eu/en/posts/postmortem-typeit-mermaid/</link><pubDate>Thu, 14 May 2026 09:46:31 +0200</pubDate><author>Jmr</author><guid>https://www.arleo.eu/en/posts/postmortem-typeit-mermaid/</guid><description><![CDATA[<div class="featured-image">
                <img src="/images/postmortem-typeit-mermaid-featured.jpg" referrerpolicy="no-referrer">
            </div><h2 id="tldr">TL;DR</h2>
<p>The LoveIt theme&rsquo;s typewriter animation (TypeIt) stopped working on the home after adding Mermaid diagrams to posts. Cause: a <code>#id-1</code> DOM selector shared between both libraries. When Mermaid finds an orphan block in a home summary, its initialization crashes, and the JS init chain stops before reaching TypeIt. Fix: add `</p>]]></description></item><item><title>Post-mortem: 3 MCP timeouts — IPAddressDeny + Cloudflare + NFS</title><link>https://www.arleo.eu/en/posts/postmortem-mcp-timeouts-cloudflare/</link><pubDate>Sat, 09 May 2026 13:04:20 +0200</pubDate><author>Jmr</author><guid>https://www.arleo.eu/en/posts/postmortem-mcp-timeouts-cloudflare/</guid><description><![CDATA[<div class="featured-image">
                <img src="/images/postmortem-mcp-timeouts-cloudflare-featured.jpg" referrerpolicy="no-referrer">
            </div><h2 id="context">Context</h2>
<p>I deployed a Hugo MCP Server (FastAPI, 7 tools) that lets me edit arleo.eu from Claude.ai. Architecture: <code>claude.ai → mcp-oauth-proxy NUC → hugo-mcp-proxy NUC → MCP server VM</code>.</p>]]></description></item></channel></rss>