← back to Commercialrealestate
CRCP: graceful-degrade /api/brokers/linkedin + /api/segments to 200+unavailable on DB error (match /api/leads/top; clean prod console)
aeb002825872be97f87dbbd27e74eb0e42bced2c · 2026-07-25 10:53:34 -0700 · Steve Abrams
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Files touched
Diff
commit aeb002825872be97f87dbbd27e74eb0e42bced2c
Author: Steve Abrams <steve@designerwallcoverings.com>
Date: Sat Jul 25 10:53:34 2026 -0700
CRCP: graceful-degrade /api/brokers/linkedin + /api/segments to 200+unavailable on DB error (match /api/leads/top; clean prod console)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
---
scripts/serve.js | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/scripts/serve.js b/scripts/serve.js
index 001ccf7..aa1859b 100644
--- a/scripts/serve.js
+++ b/scripts/serve.js
@@ -290,7 +290,7 @@ app.get('/api/brokers/linkedin', async (req, res) => {
people, total: people.length, withProfile: people.filter(p => p.linkedin).length,
note: 'Manual follow list — open each profile and follow in LinkedIn. No automation (LinkedIn TOS).'
});
- } catch (e) { res.status(502).json({ error: String(e.message).split('\n')[0], people: [] }); }
+ } catch (e) { res.json({ people: [], unavailable: true, error: String(e.message).split('\n')[0] }); }
});
// ALL brokers/agents with EVERY field — backs the sortable/searchable broker grid+list (broker-grid.html).
@@ -1113,7 +1113,7 @@ app.get('/api/segments', async (req, res) => {
: seg.src === 'assumable' ? 'HEURISTIC estimate — likely-assumable FHA/VA, NOT title-verified. Verify in title records before relying on it.' : null });
}
res.json({ segments: out });
- } catch (e) { res.status(502).json({ error: String(e.message).split('\n')[0], segments: [] }); }
+ } catch (e) { res.json({ segments: [], unavailable: true, error: String(e.message).split('\n')[0] }); }
});
app.get('/api/segment', async (req, res) => {
if (!brokerdb) return res.status(503).json({ error: 'DB unavailable' });
← 44f86d6 CRCP: scrub persona flag_reason twin in broker-history-pilot
·
back to Commercialrealestate
·
CRCP: harden serve.js — atomic brokers-snapshot write (H3) + 379ab20 →