diff --git a/pkg/id/id.go b/pkg/id/id.go
index 2f3a9adda1b3ad0cccd15db8f14881d22533fb24..b9e579e33d63468e3d7830b5b127d1a0e81411c2 100644
--- a/pkg/id/id.go
+++ b/pkg/id/id.go
@@ -45,7 +45,7 @@ func ValidateName(name string) (string, error) {
 	if trimmedName == "" {
 		return trimmedName, ErrEmptyName
 	}
-	if len(trimmedName) > MaxLengthName {
+	if len([]rune(trimmedName)) > MaxLengthName {
 		return trimmedName, ErrLongName
 	}
 	return trimmedName, nil
diff --git a/pkg/id/id_test.go b/pkg/id/id_test.go
index f778e3a9d70b1711d05e983fcc2ac0c43bfd61ff..7e40efd02f07fe9db4bdda2b692577b5007199be 100644
--- a/pkg/id/id_test.go
+++ b/pkg/id/id_test.go
@@ -104,6 +104,18 @@ func TestValidateName(t *testing.T) {
 			"test_1-2",
 			false,
 		},
+		{
+			"Cyrillic name #1",
+			"1ывлдаывоаждывоажыовалывоалджыварщшуджлкцталиамтвалытм тывжалдыжлдвттлвтмыдытфджтмфвмт",
+			"1ывлдаывоаждывоажыовалывоалджыварщшуджлкцталиамтвалытм тывжалдыжлдвттлвтмыдытфджтмфвмт",
+			false,
+		},
+		{
+			"Cyrillic name #2",
+			"Римский император Константин I Великий по достоинству оценил выгодное местоположение приморского Византия, расположенного на стыке Евро",
+			"Римский император Константин I Великий по достоинству оценил выгодное местоположение приморского Византия, расположенного на стыке Евро",
+			false,
+		},
 		{
 			"Trimmed name #1",
 			" test_1-3 ",
@@ -117,11 +129,17 @@ func TestValidateName(t *testing.T) {
 			false,
 		},
 		{
-			"Fail, name to long",
+			"Fail, name to long #1",
 			"ChKRLdvWi0wYYPazuBXrIRtNFy96qGrhBDkuKQNd6N2DPV86IGdXVkeTjWj7qezKreIFUp9IUn03A8WJTTORHkgXAvkPuDVM8tVMcnHbR2hznooJ3gGUsXpn4uXo2QhsviHPyUKmE10GnkCOv9FgAMILNoFVHnIiSHI3cjWlGJglpS9YAMXFB1phOIRF5yol3jmPE7EeU1uZPUw9C2PChuksGsOuJQov07Zom0b13r6wOJv8PZVa4IKmjDDLGKlq1",
 			"ChKRLdvWi0wYYPazuBXrIRtNFy96qGrhBDkuKQNd6N2DPV86IGdXVkeTjWj7qezKreIFUp9IUn03A8WJTTORHkgXAvkPuDVM8tVMcnHbR2hznooJ3gGUsXpn4uXo2QhsviHPyUKmE10GnkCOv9FgAMILNoFVHnIiSHI3cjWlGJglpS9YAMXFB1phOIRF5yol3jmPE7EeU1uZPUw9C2PChuksGsOuJQov07Zom0b13r6wOJv8PZVa4IKmjDDLGKlq1",
 			true,
 		},
+		{
+			"Fail, name to long #2",
+			"Идентификаторы, различающиеся только регистром букв, являются различными. В языке существует ряд соглашений об использовании заглавных и строчных букв. В частности, в именах пакетов используются только строчные буквы. Все ключевые слова Go пишутся в нижнем регистре. Переменные, начинающиеся с заглавных букв, являются экспортируемыми (public), а начинающиеся со строчных букв — неэкспортируемыми (private).",
+			"Идентификаторы, различающиеся только регистром букв, являются различными. В языке существует ряд соглашений об использовании заглавных и строчных букв. В частности, в именах пакетов используются только строчные буквы. Все ключевые слова Go пишутся в нижнем регистре. Переменные, начинающиеся с заглавных букв, являются экспортируемыми (public), а начинающиеся со строчных букв — неэкспортируемыми (private).",
+			true,
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {