My n8n Kept Every Execution for 90 Days — Until the Database Hit 38 GB
Description and use
<h1> My n8n Kept Every Execution for 90 Days — Until the Database Hit 38 GB </h1> <p><em>Part of my build-in-public series on running LLM workflows in n8n in production. This week's incident: my self-hosted n8n started taking 20 seconds to load the execution list, and the disk-usage graph had a slope I could see from across the room.</em></p> <h2> The morning the execution list stopped loading </h2> <p>I noticed it while debugging a failed run — I clicked "Executions" and the page just sat there. Twenty seconds of spinner before anything rendered. Then I checked the disk: the Postgres volume b
Problem
<h1> My n8n Kept Every Execution for 90 Days — Until the Database Hit 38 GB </h1> <p><em>Part of my build-in-public series on running LLM workflows in n8n in production. This week's incident: my self-hosted n8n started taking 20 seconds to load the execution list, and the disk-usage graph had a slope I could see from across the room.</em></p> <h2> The morning the execution list stopped loading </h2> <p>I noticed it while debugging a failed run — I clicked "Executions" and the page just sat there. Twenty seconds of spinner before anything rendered. Then I checked the disk: the Postgres volume b
Outcome
<h1> My n8n Kept Every Execution for 90 Days — Until the Database Hit 38 GB </h1> <p><em>Part of my build-in-public series on running LLM workflows in n8n in production. This week's incident: my self-hosted n8n started taking 20 seconds to load the execution list, and the disk-usage graph had a slope I could see from across the room.</em></p> <h2> The morning the execution list stopped loading </h2> <p>I noticed it while debugging a failed run — I clicked "Executions" and the page just sat there. Twenty seconds of spinner before anything rendered. Then I checked the disk: the Postgres volume b
Evidence
My n8n Kept Every Execution for 90 Days — Until the Database Hit 38 GB
- Record date: 2026-10-17T14:41:23.355Z