From 21d1f7b37959aff50dd76373129ded6fb90a70e6 Mon Sep 17 00:00:00 2001 From: Alexandre Catarino Date: Tue, 12 May 2026 22:33:02 +0100 Subject: [PATCH] Exit with error when QuiverQuant fetch returns no data Treat an empty per-ticker accumulator at Flush time as a connection failure: log an error and return false so Program.Main exits with code 1 instead of producing a silent success when the API is unreachable. Applies to CNBC and InsiderTrading downloaders, whose multi-date loops previously swallowed per-date failures. Co-Authored-By: Claude Opus 4.7 (1M context) --- DataProcessing/Program.cs | 10 ++++++++-- DataProcessing/QuiverCNBCDataDownloader.cs | 6 ++++++ DataProcessing/QuiverInsiderTradingDataDownloader.cs | 6 ++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/DataProcessing/Program.cs b/DataProcessing/Program.cs index 5656130..7bb4b0c 100644 --- a/DataProcessing/Program.cs +++ b/DataProcessing/Program.cs @@ -63,7 +63,10 @@ public static void Main() $"{VendorName} {QuiverCNBCDataDownloader.VendorDataName} data for date: {date:yyyy-MM-dd}"); } } - instance.Flush(); + if (!instance.Flush()) + { + return false; + } instance.ProcessUniverse(); return true; }); @@ -138,7 +141,10 @@ public static void Main() $"{VendorName} {QuiverInsiderTradingDataDownloader.VendorDataName} data for date: {date:yyyy-MM-dd}"); } } - instance.Flush(); + if (!instance.Flush()) + { + return false; + } instance.ProcessUniverse(); return true; }); diff --git a/DataProcessing/QuiverCNBCDataDownloader.cs b/DataProcessing/QuiverCNBCDataDownloader.cs index e40032b..54295dc 100644 --- a/DataProcessing/QuiverCNBCDataDownloader.cs +++ b/DataProcessing/QuiverCNBCDataDownloader.cs @@ -141,6 +141,12 @@ public bool Run(DateTime processDate) /// True on success public bool Flush() { + if (_cnbcByTicker.Count == 0) + { + Log.Error($"QuiverCNBCDataDownloader.Flush(): No data accumulated; treating run as a failure (likely unable to reach QuiverQuant)."); + return false; + } + try { foreach (var kvp in _cnbcByTicker) diff --git a/DataProcessing/QuiverInsiderTradingDataDownloader.cs b/DataProcessing/QuiverInsiderTradingDataDownloader.cs index f091c33..291a282 100644 --- a/DataProcessing/QuiverInsiderTradingDataDownloader.cs +++ b/DataProcessing/QuiverInsiderTradingDataDownloader.cs @@ -165,6 +165,12 @@ public bool Run(DateTime processDate) /// True on success public bool Flush() { + if (_insiderTradingByTicker.Count == 0) + { + Log.Error($"QuiverInsiderTradingDataDownloader.Flush(): No data accumulated; treating run as a failure (likely unable to reach QuiverQuant)."); + return false; + } + var failed = 0; foreach (var kvp in _insiderTradingByTicker) {