From 014cd62729fa9884c10264384e0f5f57f74492dc Mon Sep 17 00:00:00 2001 From: gamer147 Date: Fri, 12 Jun 2026 12:03:32 -0400 Subject: [PATCH] fix(card-master): degrade payload provider gracefully on IO error or empty file --- .../Services/CardMasterPayloadProvider.cs | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/SVSim.EmulatedEntrypoint/Services/CardMasterPayloadProvider.cs b/SVSim.EmulatedEntrypoint/Services/CardMasterPayloadProvider.cs index 4cb3b63d..91875a98 100644 --- a/SVSim.EmulatedEntrypoint/Services/CardMasterPayloadProvider.cs +++ b/SVSim.EmulatedEntrypoint/Services/CardMasterPayloadProvider.cs @@ -35,8 +35,27 @@ public sealed class CardMasterPayloadProvider : ICardMasterPayloadProvider IsAvailable = false; return; } - Base64Blob = File.ReadAllText(path).Trim(); - IsAvailable = Base64Blob.Length > 0; - log.LogInformation("Loaded card-master blob ({Bytes} base64 chars).", Base64Blob.Length); + string content; + try + { + content = File.ReadAllText(path).Trim(); + } + catch (IOException ex) + { + log.LogError(ex, "Failed reading card-master blob at {Path} — /immutable_data/card_master will 503.", path); + Base64Blob = ""; + IsAvailable = false; + return; + } + if (content.Length == 0) + { + log.LogWarning("Card-master blob at {Path} is empty — /immutable_data/card_master will 503.", path); + Base64Blob = ""; + IsAvailable = false; + return; + } + Base64Blob = content; + IsAvailable = true; + log.LogInformation("Loaded card-master blob from {Path} ({Bytes} base64 chars).", path, Base64Blob.Length); } }