From 7471bbec40444b8bb76393a492590209fb32dc8d Mon Sep 17 00:00:00 2001 From: Darren Jones <1425808+ddaddy@users.noreply.github.com> Date: Thu, 4 Jun 2026 16:07:53 +0200 Subject: [PATCH 1/2] fix: remove force unwrap from fileURL --- Sources/TelemetryDeck/Signals/SignalCache.swift | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/Sources/TelemetryDeck/Signals/SignalCache.swift b/Sources/TelemetryDeck/Signals/SignalCache.swift index 1f4d2e1..5844526 100644 --- a/Sources/TelemetryDeck/Signals/SignalCache.swift +++ b/Sources/TelemetryDeck/Signals/SignalCache.swift @@ -60,19 +60,17 @@ internal class SignalCache: @unchecked Sendable where T: Codable { } } - private func fileURL() -> URL { + private func fileURL() throws -> URL { if let cacheFileURL { return cacheFileURL } - // swiftlint:disable force_try - let cacheFolderURL = try! FileManager.default.url( + let cacheFolderURL = try FileManager.default.url( for: .cachesDirectory, in: .userDomainMask, appropriateFor: nil, create: false ) - // swiftlint:enable force_try return cacheFolderURL.appendingPathComponent("telemetrysignalcache") } @@ -87,9 +85,10 @@ internal class SignalCache: @unchecked Sendable where T: Codable { } private func loadFromDiskLocked() { - logHandler?.log(message: "Loading Telemetry cache from: \(fileURL())") - guard let data = try? Data(contentsOf: fileURL()) else { return } - try? FileManager.default.removeItem(at: fileURL()) + guard let fileURL = try? fileURL() else { return } + logHandler?.log(message: "Loading Telemetry cache from: \(fileURL)") + guard let data = try? Data(contentsOf: fileURL) else { return } + try? FileManager.default.removeItem(at: fileURL) guard let signals = try? JSONDecoder().decode([T].self, from: data) else { return } logHandler?.log(message: "Loaded \(signals.count) signals") cachedSignals.append(contentsOf: signals) From 053fa8a4046cfdb85fd6400f2948e678e39d46f5 Mon Sep 17 00:00:00 2001 From: Konstantin Date: Fri, 5 Jun 2026 12:38:52 +0200 Subject: [PATCH 2/2] Apply suggestion from @kkostov --- Sources/TelemetryDeck/Signals/SignalCache.swift | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/Sources/TelemetryDeck/Signals/SignalCache.swift b/Sources/TelemetryDeck/Signals/SignalCache.swift index 5844526..73a7310 100644 --- a/Sources/TelemetryDeck/Signals/SignalCache.swift +++ b/Sources/TelemetryDeck/Signals/SignalCache.swift @@ -85,7 +85,13 @@ internal class SignalCache: @unchecked Sendable where T: Codable { } private func loadFromDiskLocked() { - guard let fileURL = try? fileURL() else { return } + guard let fileURL = try? fileURL() else { + logHandler?.log( + .error, + message: "Failed to get disk cache url from FileManager." + ) + return + } logHandler?.log(message: "Loading Telemetry cache from: \(fileURL)") guard let data = try? Data(contentsOf: fileURL) else { return } try? FileManager.default.removeItem(at: fileURL)