From 28a3819140598860a6e646fd1a2843692648c449 Mon Sep 17 00:00:00 2001
From: inso <insomniak.fr@gmaiL.com>
Date: Thu, 30 Nov 2017 22:37:05 +0100
Subject: [PATCH] Fix handling on unknown peer in data

---
 src/sakia/data/connectors/node.py | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/src/sakia/data/connectors/node.py b/src/sakia/data/connectors/node.py
index fcb2b475..b8253819 100644
--- a/src/sakia/data/connectors/node.py
+++ b/src/sakia/data/connectors/node.py
@@ -336,9 +336,17 @@ class NodeConnector(QObject):
                             if not leaf_data:
                                 break
                             self.refresh_peer_data(leaf_data['leaf']['value'])
-                        except (AttributeError, ValueError, errors.DuniterError) as e:
+                        except (AttributeError, ValueError) as e:
                             self._logger.debug("Incorrect peer data in {leaf} : {err}".format(leaf=leaf_hash, err=str(e)))
                             self.change_state_and_emit(Node.OFFLINE)
+                        except errors.DuniterError as e:
+                            if e.ucode == 2012:
+                                # Since with multinodes, peers or not the same on all nodes, sometimes this request results
+                                # in peer not found error
+                                self._logger.debug(str(e))
+                            else:
+                                self.change_state_and_emit(Node.OFFLINE)
+                                self._logger.debug("Incorrect peer data in {leaf} : {err}".format(leaf=leaf_hash, err=str(e)))
                     else:
                         self.node.merkle_peers_root = peers_data['root']
                         self.node.merkle_peers_leaves = tuple(peers_data['leaves'])
-- 
GitLab