diff --git a/proto/common/common.proto b/proto/common/common.proto
index 60a918a78edde0584408543f191e3a8fc4ffded3..a929133532359066ac5e57f91cf49988cd5812ef 100644
--- a/proto/common/common.proto
+++ b/proto/common/common.proto
@@ -6,44 +6,6 @@ package common;
 
 import "google/protobuf/struct.proto";
 
-message Error {
-  message BadRequest {
-    message FieldViolation {
-      string field = 1;
-      string description = 2;
-    }
-    repeated FieldViolation errors = 1;
-  }
-
-  message Help {
-    message Link {
-      string description =1;
-      string url = 2;
-    }
-    repeated Link links = 1;
-  }
-
-  message DebugInfo {
-    repeated string stack_trace = 1;
-    string detail = 2;
-  }
-
-  message LocalizedMessage {
-    string locale = 1;
-    string message = 2;
-  }
-
-  uint64 error_code = 1; // Код ошибки
-  string error_id = 2; // ID конкретного инцидента, ID уникальна для каждого случая.
-  string reason = 3; // ???
-  string domain = 4; // Сервис,Пакет к которому относится ошибка
-  map<string,string> metadata = 9; // Мета-информация
-  BadRequest bad_request = 10; // Ошибка запроса
-  DebugInfo debug_info = 11; // Отладочная информация
-  Help help = 100; // Пользовательская информации и инструкции
-  repeated LocalizedMessage localized_messages = 200; // Перевод сообщения об ошибке
-}
-
 message Filter {
   string op = 1;
   string field = 2;
diff --git a/proto/common/error.proto b/proto/common/error.proto
new file mode 100644
index 0000000000000000000000000000000000000000..5dce268cff280c9f1ab0b8a1a8f71d7f14ba85fd
--- /dev/null
+++ b/proto/common/error.proto
@@ -0,0 +1,49 @@
+syntax = "proto3";
+
+option go_package = "git.perx.ru/perxis/perxis-go/proto/common;common";
+
+package common;
+
+import "google/protobuf/struct.proto";
+
+message Error {
+  message BadRequest {
+    message FieldViolation {
+      string field = 1;
+      string description = 2;
+    }
+    repeated FieldViolation errors = 1;
+  }
+
+  message Help {
+    message Link {
+      string description =1;
+      string url = 2;
+    }
+    repeated Link links = 1;
+  }
+
+  message DebugInfo {
+    repeated string stack_trace = 1;
+    string detail = 2;
+  }
+
+  message LocalizedMessage {
+    string locale = 1;
+    string message = 2;
+  }
+
+  uint64 error_code = 1; // Код ошибки
+  string error_id = 2; // ID конкретного инцидента, ID уникальна для каждого случая.
+  string reason = 3; // ???
+  string domain = 4; // Сервис, пакет к которому относится ошибка
+  string message = 5; // Текст ошибки
+  string details = 6; // Дополнительные детали об ошибке
+  map<string,string> metadata = 9; // Мета-информация
+  BadRequest bad_request = 10; // Ошибка запроса
+  DebugInfo debug_info = 11; // Отладочная информация
+  Help help = 100; // Пользовательская информации и инструкции
+  repeated LocalizedMessage localized_messages = 200; // Перевод сообщения об ошибке
+
+  repeated Error errors = 500; // Вложенные ошибки
+}
diff --git a/proto/common/operation.proto b/proto/common/operation.proto
index d77171ae99b45592065af7b9b2d6e016190ce65a..888ff4b9d29d55a155219d2269a52baa9c47c0db 100644
--- a/proto/common/operation.proto
+++ b/proto/common/operation.proto
@@ -4,6 +4,7 @@ package common;
 
 import "google/protobuf/timestamp.proto";
 import "google/protobuf/any.proto";
+import "common/error.proto";
 
 option go_package = "git.perx.ru/perxis/perxis-go/proto/common;common";
 
@@ -37,6 +38,6 @@ message Operation {
     google.protobuf.Any response = 9;
 
     // Результат выполнения операции в случае ошибки
-    string error = 10;
+    Error error = 10;
   }
 }
diff --git a/proto/items/items.proto b/proto/items/items.proto
index 9ab01fe0c9b3ea6c132a879709cfb2d483770c79..444cdb0998db7fc62197e09d4a41e160e7b54860 100644
--- a/proto/items/items.proto
+++ b/proto/items/items.proto
@@ -10,6 +10,7 @@ syntax = "proto3";
 
 import "google/protobuf/empty.proto";
 import "common/common.proto";
+import "common/error.proto";
 import "google/protobuf/timestamp.proto";
 import "google/protobuf/struct.proto";