<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Mongoose on SQP Dev</title>
    <link>/tags/mongoose/</link>
    <description>Recent content in Mongoose on SQP Dev</description>
    <generator>Hugo</generator>
    <language>en-gb</language>
    <lastBuildDate>Thu, 14 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="/tags/mongoose/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>SQP Kanban — Three Bugs That Broke Deployment</title>
      <link>/posts/2026-05-14-blog-sqp-kanban-bugs-and-debugging/</link>
      <pubDate>Thu, 14 May 2026 00:00:00 +0000</pubDate>
      <guid>/posts/2026-05-14-blog-sqp-kanban-bugs-and-debugging/</guid>
      <description>&lt;p&gt;Deploying SQP Kanban looked simple on paper. In practice, three bugs made it interesting.&lt;/p&gt;&#xA;&lt;h2 id=&#34;bug-1--mongoose-refuses-to-save&#34;&gt;Bug 1 — Mongoose Refuses to Save&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Symptom:&lt;/strong&gt; Adding projects and tasks worked in the UI, but nothing persisted after a page refresh. The save status was stuck on &amp;ldquo;Saving&amp;hellip;&amp;rdquo; forever.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Two problems hiding as one.&lt;/strong&gt; First, the save status update in &lt;code&gt;saveBoard()&lt;/code&gt; was a bare template literal that didn&amp;rsquo;t actually call anything:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-javascript&#34; data-lang=&#34;javascript&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;// This does nothing — it&amp;#39;s just a floating string expression&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;`Saved &lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;${&lt;/span&gt;&lt;span style=&#34;color:#66d9ef&#34;&gt;new&lt;/span&gt; Date().&lt;span style=&#34;color:#a6e22e&#34;&gt;toLocaleTimeString&lt;/span&gt;()&lt;span style=&#34;color:#e6db74&#34;&gt;}&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;`&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Second — and this was the real blocker — the Mongoose schemas for subdocuments (projects, tasks, columns) used the default &lt;code&gt;_id&lt;/code&gt; type of &lt;code&gt;ObjectId&lt;/code&gt;, but the frontend was generating IDs with &lt;code&gt;crypto.randomUUID()&lt;/code&gt;, which produces UUIDs like &lt;code&gt;b14a56c5-2628-4138-990c-cb685fdf04ce&lt;/code&gt;. MongoDB ObjectIds are 24-character hex strings. Mongoose threw a &lt;code&gt;CastError&lt;/code&gt; on every save attempt.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
