diff --git a/beat/backend/python/library.py b/beat/backend/python/library.py
index a59ce3c7cd105cafd344eb8be875ef0a3cac0416..8d91adcbc8b94ccf2f37b97298e30a4c233f4c87 100644
--- a/beat/backend/python/library.py
+++ b/beat/backend/python/library.py
@@ -43,7 +43,7 @@ Validation for libraries
 """
 
 import os
-import simplejson
+import simplejson as json
 
 from . import loader
 from . import utils
@@ -164,7 +164,14 @@ class Library(object):
             return
 
         with open(json_path, "rb") as f:
-            self.data = simplejson.loads(f.read().decode("utf-8"))
+            try:
+                self.data = json.loads(
+                    f.read().decode("utf-8"),
+                    object_pairs_hook=utils.error_on_duplicate_key_hook,
+                )
+            except RuntimeError as error:
+                self.errors.append("Library declaration file invalid: %s" % error)
+                return
 
         self.code_path = self.storage.code.path
 
@@ -318,7 +325,7 @@ class Library(object):
 
         """
 
-        return simplejson.dumps(self.data, indent=indent, cls=utils.NumpyJSONEncoder)
+        return json.dumps(self.data, indent=indent, cls=utils.NumpyJSONEncoder)
 
     def __str__(self):
         return self.json_dumps()