From f9b63e7ba5dceb6fa89576ccbf275d2e898a6fe2 Mon Sep 17 00:00:00 2001 From: Garth Vander Houwen Date: Sun, 15 Jun 2025 14:14:18 -0700 Subject: [PATCH] Rollback if second user create fails --- Meshtastic/Persistence/UpdateCoreData.swift | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Meshtastic/Persistence/UpdateCoreData.swift b/Meshtastic/Persistence/UpdateCoreData.swift index 0812311e..7aba8899 100644 --- a/Meshtastic/Persistence/UpdateCoreData.swift +++ b/Meshtastic/Persistence/UpdateCoreData.swift @@ -245,16 +245,18 @@ func upsertNodeInfoPacket (packet: MeshPacket, context: NSManagedObjectContext) } } } - + // User is messed up and has failed to create at least once, if this fails bail out if newNode.user == nil && packet.from > Constants.minimumNodeNum { do { let newUser = try createUser(num: Int64(packet.from), context: context) newNode.user = newUser } catch CoreDataError.invalidInput(let message) { Logger.data.error("Error Creating a new Core Data UserEntity (Invalid Input) from node number: \(packet.from, privacy: .public) Error: \(message, privacy: .public)") + context.rollback() return } catch { Logger.data.error("Error Creating a new Core Data UserEntity from node number: \(packet.from, privacy: .public) Error: \(error.localizedDescription, privacy: .public)") + context.rollback() return } }