[object Object]

← back to Designer Wallcoverings

Kravet roll-add: guard audit INSERT in try/catch so a logging failure never crashes the run and leaks an untracked variant (emits vid for manual recovery)

252e2e9f5cd01f37d92e23fda22a6d58a2486c93 · 2026-08-18 14:57:53 -0700 · Steve

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

Files touched

Diff

commit 252e2e9f5cd01f37d92e23fda22a6d58a2486c93
Author: Steve <steve@designerwallcoverings.com>
Date:   Tue Aug 18 14:57:53 2026 -0700

    Kravet roll-add: guard audit INSERT in try/catch so a logging failure never crashes the run and leaks an untracked variant (emits vid for manual recovery)
    
    Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
 shopify/scripts/cadence/add-kravet-roll-variants.js | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/shopify/scripts/cadence/add-kravet-roll-variants.js b/shopify/scripts/cadence/add-kravet-roll-variants.js
index cb768590..fe249772 100644
--- a/shopify/scripts/cadence/add-kravet-roll-variants.js
+++ b/shopify/scripts/cadence/add-kravet-roll-variants.js
@@ -171,8 +171,14 @@ function rollLabel(tags) {
     const ue = r && r.userErrors;
     const good = res.status === 200 && ue && ue.length === 0 && r.productVariants && r.productVariants.length;
     const vid = good ? r.productVariants[0].id : null;
-    psql(`INSERT INTO kravet_roll_add_audit(shopify_id,mfr_sku,roll_sku,option_name,option_value,map_price,map_source,created_variant_id,committed,note)
+    // AUDIT-WRITE GUARD (2026-08-18): the variant is already created above; a failed
+    // audit INSERT must NOT crash the run and leak an untracked variant. Wrap + emit vid.
+    try {
+      psql(`INSERT INTO kravet_roll_add_audit(shopify_id,mfr_sku,roll_sku,option_name,option_value,map_price,map_source,created_variant_id,committed,note)
       VALUES ('${c.shopify_id}','${(c.mfr_sku||'').replace(/'/g,"''")}','${rollSku.replace(/'/g,"''")}','${optName.replace(/'/g,"''")}','${label.replace(/'/g,"''")}',${c.map},'${c.map_src}',${vid?`'${vid}'`:'NULL'},${good},${good?'NULL':`'${JSON.stringify(ue||res.raw||res.err).slice(0,150).replace(/'/g,"''")}'`});`);
+    } catch (e) {
+      console.log(`  ⚠ AUDIT-WRITE FAILED (variant WAS created — record manually): shopify_id=${c.shopify_id} sku=${rollSku} vid=${vid||'?'} map=${c.map} src=${c.map_src} err=${String(e.message||e).slice(0,120)}`);
+    }
     if (good) { added++; console.log(`  ✓ ${c.mfr_sku}  +${label} @ $${price}`); }
     else { fail++; console.log(`  ✗ ${c.mfr_sku} ${JSON.stringify(ue || res.raw || res.err).slice(0,150)}`); }
   }

← 57ef8948 Kravet roll-add: repoint MAP price source to authoritative k  ·  back to Designer Wallcoverings  ·  Kravet roll-add: add unit-mismatch guard (skip mural/panel/h 74ddf8b9 →