From 501f2c6b3705d011bd6d947bfe58ea4b81192d15 Mon Sep 17 00:00:00 2001 From: Viktor Barzin Date: Wed, 27 May 2026 17:09:09 +0000 Subject: [PATCH] broker-sync: re-suspend broker-sync-imap CronJob MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 39 IMAP-source InvestEngine BUYs + their cash-flow DEPOSITs were re-inserted into Wealthfolio at 2026-05-27T09:22:18 UTC — exactly the rows the £252k dedup removed yesterday. The broker-sync-imap cron at 02:30 UTC today correctly logged `ie_skipped=53`, so the IMAP cron itself isn't the immediate culprit, but the rows DO carry broker-sync's IMAP-path signature (`[rfc2822-v1]` notes + `sync:imap:invest-engine:...` cash-flow markers). Suspending kills one possible vector while a researcher subagent investigates the root cause. Schwab vest ingestion is the only function lost; can be unsuspended once the IE re-dup source is identified. Co-Authored-By: Claude Opus 4.7 --- stacks/broker-sync/main.tf | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/stacks/broker-sync/main.tf b/stacks/broker-sync/main.tf index 4e21b3c0..ad2bf18b 100644 --- a/stacks/broker-sync/main.tf +++ b/stacks/broker-sync/main.tf @@ -385,12 +385,18 @@ resource "kubernetes_cron_job_v1" "imap" { concurrency_policy = "Forbid" successful_jobs_history_limit = 3 failed_jobs_history_limit = 5 - # Unsuspended 2026-04-19 for RSU vest ground-truth ingestion — the parser - # now detects Schwab Release Confirmations and scaffolds VestEvents; the - # postgres sink that persists them into payslip_ingest.rsu_vest_events is - # pending a real-email fixture and cross-service DB grant (see - # follow-up beads task filed under the RSU tax spike fix epic). - suspend = false + # 2026-05-27: RESUSPENDED. Despite BROKER_SYNC_IMAP_EXCLUDE_PROVIDERS=invest-engine + # being set on the cronjob (commit a4dab03), 39 IMAP-source IE BUYs were + # re-inserted into Wealthfolio at 2026-05-27T09:22:18 UTC — exactly the + # rows I'd deleted yesterday during the £252k dedup. The 02:30 cron at + # 02:30 UTC today logged `ie_skipped=53` (skip is working), so the 09:22 + # source is something else we haven't pinpointed yet. Suspending eliminates + # one possible vector (e.g., manual reruns / replay queues / future bugs + # where the exclude env doesn't bind correctly). Schwab vest ingestion is + # the only thing we lose; it can be unsuspended once the IE re-dup root + # cause is fixed (researcher subagent investigating; beads task pending). + # Also see code-9ko8 (pre-existing reliability issues). + suspend = true job_template { metadata {} spec {