diff --git a/api/src/routes/fcc-lookup.ts b/api/src/routes/fcc-lookup.ts index b429aed..4537e49 100644 --- a/api/src/routes/fcc-lookup.ts +++ b/api/src/routes/fcc-lookup.ts @@ -1329,8 +1329,34 @@ router.get("/api/v1/fcc/cores-search", async (req, res) => { source: "FCC Form 499 Filer Database", }); } catch (err: any) { - console.error("[fcc-cores-search] Error:", err); - res.status(500).json({ error: "FCC search failed: " + (err.message || "unknown error") }); + // FCC is down or blocking us — fall back to local database + console.warn("[fcc-cores-search] FCC search failed, falling back to local DB:", err.message); + try { + const localResults = await pool.query( + `SELECT filer_id, legal_name, trade_name AS dba, frn + FROM fcc_499_filers + WHERE legal_name ILIKE $1 OR trade_name ILIKE $1 + ORDER BY legal_name + LIMIT 50`, + [`%${name}%`], + ); + const enriched = localResults.rows.map((r: any) => ({ + filer_id: r.filer_id, + legal_name: r.legal_name, + dba: r.dba || "", + frn: r.frn || null, + })); + res.json({ + results: enriched, + count: enriched.length, + total_found: enriched.length, + query: name, + source: "Local database (FCC search temporarily unavailable)", + }); + } catch (dbErr: any) { + console.error("[fcc-cores-search] Local fallback also failed:", dbErr); + res.status(500).json({ error: "Search is temporarily unavailable. Please try again later or search by FRN." }); + } } });