diff --git a/src/sakia/data/connectors/bma.py b/src/sakia/data/connectors/bma.py
index 3817763158b9d533e016a52fc533280c498b9233..65e639f77961d10c4f199c34b9464fa8da84d4d5 100644
--- a/src/sakia/data/connectors/bma.py
+++ b/src/sakia/data/connectors/bma.py
@@ -90,6 +90,12 @@ def _filter_data(request, data):
         filtered["history"].pop("sending")
         filtered["history"].pop("receiving")
         filtered["history"].pop("pending")
+    elif request is bma.wot.requirements:
+        filtered = copy.deepcopy(data)
+        for idty in filtered["identities"]:
+            for c in idty["certifications"]:
+                c.pop("expiresIn")
+
     return filtered
 
 
diff --git a/src/sakia/gui/dialogs/connection_cfg/controller.py b/src/sakia/gui/dialogs/connection_cfg/controller.py
index 3bc124a0c7e0fc95441b496963ed81904a74be50..f272621f71233feba39d0860662525b953ecf4b7 100644
--- a/src/sakia/gui/dialogs/connection_cfg/controller.py
+++ b/src/sakia/gui/dialogs/connection_cfg/controller.py
@@ -244,16 +244,20 @@ class ConnectionConfigController(QObject):
             password = self.view.edit_password.text()
             self.model.set_scrypt_infos(salt, password, self.view.scrypt_params)
             self.model.set_uid(self.view.edit_uid.text())
-            registered, found_identity = await self.model.check_registered()
-            self.view.button_connect.setEnabled(True)
-            self.view.button_register.setEnabled(True)
-            if registered[0] is False and registered[2] is None:
-                self.view.display_info(self.tr("Could not find your identity on the network."))
-            elif registered[0] is False and registered[2]:
-                self.view.display_info(self.tr("""Your pubkey or UID is different on the network.
-Yours : {0}, the network : {1}""".format(registered[1], registered[2])))
+            if not self.model.key_exists():
+                registered, found_identity = await self.model.check_registered()
+                self.view.button_connect.setEnabled(True)
+                self.view.button_register.setEnabled(True)
+                if registered[0] is False and registered[2] is None:
+                    self.view.display_info(self.tr("Could not find your identity on the network."))
+                elif registered[0] is False and registered[2]:
+                    self.view.display_info(self.tr("""Your pubkey or UID is different on the network.
+    Yours : {0}, the network : {1}""".format(registered[1], registered[2])))
+                else:
+                    self.step_key.set_result(found_identity)
             else:
-                self.step_key.set_result(found_identity)
+                self.view.display_info(self.tr("A connection already exists using this key."))
+
         except NoPeerAvailable:
             self.config_dialog.label_error.setText(self.tr("Could not connect. Check node peering entry"))
 
@@ -266,14 +270,17 @@ Yours : {0}, the network : {1}""".format(registered[1], registered[2])))
             password = self.view.edit_password.text()
             self.model.set_scrypt_infos(salt, password, self.view.scrypt_params)
             self.model.set_uid(self.view.edit_uid.text())
-            registered, found_identity = await self.model.check_registered()
-            if registered[0] is False and registered[2] is None:
-                self.step_key.set_result(None)
-            elif registered[0] is False and registered[2]:
-                self.view.display_info(self.tr("""Your pubkey or UID was already found on the network.
-Yours : {0}, the network : {1}""".format(registered[1], registered[2])))
+            if not self.model.key_exists():
+                registered, found_identity = await self.model.check_registered()
+                if registered[0] is False and registered[2] is None:
+                    self.step_key.set_result(None)
+                elif registered[0] is False and registered[2]:
+                    self.view.display_info(self.tr("""Your pubkey or UID was already found on the network.
+    Yours : {0}, the network : {1}""".format(registered[1], registered[2])))
+                else:
+                    self.view.display_info("Your account already exists on the network")
             else:
-                self.view.display_info("Your account already exists on the network")
+                self.view.display_info(self.tr("A connection already exists using this key."))
         except NoPeerAvailable:
             self.view.display_info(self.tr("Could not connect. Check node peering entry"))
 
diff --git a/src/sakia/gui/dialogs/connection_cfg/model.py b/src/sakia/gui/dialogs/connection_cfg/model.py
index 318269e3208836a1ff982e0419d65c266f541682..c1a7c3b9b6c054bc7c6e6368a0956fce729eb8f7 100644
--- a/src/sakia/gui/dialogs/connection_cfg/model.py
+++ b/src/sakia/gui/dialogs/connection_cfg/model.py
@@ -202,3 +202,5 @@ Current database is storing {1} network.""".format(node_connector.node.currency,
 
         return registered, found_identity
 
+    def key_exists(self):
+        return self.connection.pubkey in ConnectionsProcessor.instanciate(self.app).pubkeys()
diff --git a/src/sakia/services/network.py b/src/sakia/services/network.py
index d586463902ed2ee9c488841ec88c96259922f883..472a72b6d03cde4468cdce204b715e94bf34ce6a 100644
--- a/src/sakia/services/network.py
+++ b/src/sakia/services/network.py
@@ -1,11 +1,10 @@
 import asyncio
 import logging
 import time
-import aiohttp
 from collections import Counter
 
 from PyQt5.QtCore import pyqtSignal, pyqtSlot, QObject
-
+from duniterpy.api import errors
 from duniterpy.key import VerifyingKey
 from sakia.data.connectors import NodeConnector
 from sakia.data.entities import Node
@@ -213,12 +212,15 @@ class NetworkService(QObject):
                     except InvalidNodeCurrency as e:
                         self._logger.debug(str(e))
                 if node:
-                    identity = await self._identities_service.find_from_pubkey(node.pubkey)
-                    identity = await self._identities_service.load_requirements(identity)
-                    node.member = identity.member
-                    node.uid = identity.uid
-                    self._processor.update_node(node)
-                    self.nodes_changed.emit()
+                    try:
+                        identity = await self._identities_service.find_from_pubkey(node.pubkey)
+                        identity = await self._identities_service.load_requirements(identity)
+                        node.member = identity.member
+                        node.uid = identity.uid
+                        self._processor.update_node(node)
+                        self.nodes_changed.emit()
+                    except errors.DuniterError as e:
+                        self._logger.error(e.message)
 
                 self._app.db.commit()
             except IndexError: