     {
         if error != nil { self.publish(notification: .error(.unknownError)) }
         
-        if let peer = (Clink.Configuration.peerManager ?? self).getSavedPeer(withId: peripheral.identifier) {
+        if let peer = (Clink.Configuration.peerManager ?? self).getSavedPeer(withId: peripheral.identifier.uuidString) {
             self.publish(notification: .disconnected(peer))
         }
         
-        self.connect(peerWithId: peripheral.identifier)
+        self.connect(peerWithId: peripheral.identifier.uuidString)
     }
     
     public final func centralManager(_ central: CBCentralManager, didFailToConnect peripheral: CBPeripheral, error: Error?) {

        Clink.Configuration.dispatchQueue.async {
            task.delegate = nil
            
            let peer = Peer(id: peripheral.identifier)
            let peerManager = Clink.Configuration.peerManager ?? self
            
            peerManager.save(peer: peer)

        var connectedPeers: [ClinkPeer] = []
        
        for peripheral in activePeripherals where peripheral.state == .connected {
            if let peer = peerManager?.getSavedPeer(withId: peripheral.identifier.uuidString) {
                connectedPeers.append(peer)
            }
        }
