diff --git a/perxis/extensions/extension_service.py b/perxis/extensions/extension_service.py
index 14b07f15bbbdbf6f044120f34cc12843c35782ab..94a479ec9da68fca1f0767df629d8839ed788119 100644
--- a/perxis/extensions/extension_service.py
+++ b/perxis/extensions/extension_service.py
@@ -94,7 +94,7 @@ class ExtensionService(
     clients: list[clients_pb2.Client] = []
     actions: list[dict] = []
 
-    __operations: dict[str, OperationMeta] = {}
+    __operations: dict[str, OperationMeta]
 
     def __init__(self,
                  collections_service: collections_pb2_grpc.CollectionsStub,
@@ -137,6 +137,8 @@ class ExtensionService(
             self.roles_service, self.clients_service, self.items_service,
         )
 
+        self.__operations = {}
+
         for collection in self.collections or []:
             self.extension_setup.add_collection(collection)
 
@@ -153,6 +155,10 @@ class ExtensionService(
         async def remove_old_operations():
             self.remove_old_operations()
 
+    @property
+    def operations(self):
+        return self.__operations
+
     def remove_old_operations(self):
         self.logger.info("Удаление старых операций")
 
@@ -234,6 +240,12 @@ class ExtensionService(
             description=description
         )
 
+    def mark_operation_as_finished(self, operation_id: str, errors: list[str] | None = None):
+        if operation_id in self.operations:
+            self.operations[operation_id].mark_finished(errors)
+        else:
+            self.logger.error(f"Операция {operation_id} не найдена!")
+
     async def _Install(self, operation_id: str, request: extension_service_pb2.InstallRequest, context):
         errors_list = await self.extension_setup.install(
             request.space_id, request.env_id, request.force
@@ -241,7 +253,7 @@ class ExtensionService(
 
         self.result_log("установки", operation_id, request, errors_list)
 
-        self.__operations[operation_id].mark_finished(errors_list)
+        self.mark_operation_as_finished(operation_id, errors_list)
 
     async def Install(self, request: extension_service_pb2.InstallRequest, context):
         operation_id = generate_operation_id()
@@ -265,7 +277,7 @@ class ExtensionService(
 
         self.result_log("удаления", operation_id, request, errors_list)
 
-        self.__operations[operation_id].mark_finished(errors_list)
+        self.mark_operation_as_finished(operation_id, errors_list)
 
     async def Uninstall(self, request: extension_service_pb2.UninstallRequest, context):
         operation_id = generate_operation_id()
diff --git a/setup.py b/setup.py
index 84d4659015bf46eb40ad3d806f2bb269d8af0557..3e806b5b694d13e6e49ce0777840a4c3e865c247 100644
--- a/setup.py
+++ b/setup.py
@@ -14,7 +14,7 @@ def load_requirements():
 
 setup(
     name='perxis',
-    version='1.8.0',
+    version='1.8.1',
     description='Perxis python client',
     long_description=long_description,
     long_description_content_type='text/markdown',