diff --git a/PayfritBeacon/BeaconProvisioner.swift b/PayfritBeacon/BeaconProvisioner.swift index 256903d..89e8bd8 100644 --- a/PayfritBeacon/BeaconProvisioner.swift +++ b/PayfritBeacon/BeaconProvisioner.swift @@ -974,6 +974,11 @@ extension BeaconProvisioner: CBCentralManagerDelegate { } else if state != .success && state != .idle { if case .failed = state { // Already failed + } else if state == .writing && dxSmartWriteIndex >= dxSmartCommandQueue.count - 1 { + // SaveConfig (last command) was sent — beacon rebooted to apply config + // This is expected behavior, treat as success + DebugLog.shared.log("BLE: Disconnect after SaveConfig — treating as success") + succeed() } else { fail("Unexpected disconnect", code: .disconnected) }