[object Object]

← back to Nationalrealestate

usre: loud+identifiable log on first-see lifecycle failure (explains ingest listing_count vs new-event off-by-one; sweep is the safety net) (TK-10155)

aeba005a3f69c3e0fdeee6a1b4518930fcaffebc · 2026-08-03 07:04:57 -0700 · steve

Files touched

Diff

commit aeba005a3f69c3e0fdeee6a1b4518930fcaffebc
Author: steve <steve@designerwallcoverings.com>
Date:   Mon Aug 3 07:04:57 2026 -0700

    usre: loud+identifiable log on first-see lifecycle failure (explains ingest listing_count vs new-event off-by-one; sweep is the safety net) (TK-10155)
---
 src/ingest/listings/engine.ts | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/ingest/listings/engine.ts b/src/ingest/listings/engine.ts
index 2562718..54779f2 100644
--- a/src/ingest/listings/engine.ts
+++ b/src/ingest/listings/engine.ts
@@ -100,7 +100,10 @@ async function upsertListing(
       );
     }
   } catch (e: any) {
-    console.warn(`[${source}] lifecycle first-see record skipped: ${e?.message || e}`);
+    // Loud + identifiable (TK-10155 Cycle-3): a swallowed first-see failure is why an ingest's
+    // listing_count can exceed the new-event count by 1+. Not fatal — the next sweep re-derives
+    // state for every listing and writes the missing 'new' event + snapshot as its safety net.
+    console.error(`[${source}] lifecycle first-see record FAILED for source_id=${f.sourceId} (sweep will recover): ${e?.message || e}`);
   }
 }
 

← 3709d7d usre: coverage-gate the full-rescan marker — downgrade to 'p  ·  back to Nationalrealestate  ·  usre: agent(broker) own-site discovery — $0 free-SERP + loca cacffea →