diff --git a/logs/log_test.go b/logs/log_test.go
index 45d8222af6c347bfbc81eb4faa4d001e74b26932..12aa362a1a2ec1b545d458f273ad9b662a579cf2 100644
--- a/logs/log_test.go
+++ b/logs/log_test.go
@@ -106,4 +106,24 @@ func TestFindResult(t *testing.T) {
 		assert.Equal(t, []string{"timestamp"}, res.Options.Sort)
 		assert.Equal(t, []string{"level"}, res.Options.Fields)
 	})
+	t.Run("From PB: with nil filter and options", func(t *testing.T) {
+		res := FindResultFromPB(&pb.FindResult{Filter: nil, Options: nil})
+		assert.NotNil(t, res)
+		assert.Nil(t, res.Options)
+		assert.Nil(t, res.Filter)
+	})
+	t.Run("To PB: with nil filter and options", func(t *testing.T) {
+		res := FindResultToPB(&FindResult{Filter: nil, Options: nil})
+		assert.NotNil(t, res)
+		assert.Nil(t, res.Options)
+		assert.Nil(t, res.Filter)
+	})
+	t.Run("From PB: nil", func(t *testing.T) {
+		res := FindResultFromPB(nil)
+		assert.Nil(t, res)
+	})
+	t.Run("To PB: nil", func(t *testing.T) {
+		res := FindResultToPB(nil)
+		assert.Nil(t, res)
+	})
 }
diff --git a/logs/service.go b/logs/service.go
index 9409b2a4254af36c87ceba81172bcc4d43b18f94..f91fbcc1d8e673ccd7a533778273fa8da7ab3039 100644
--- a/logs/service.go
+++ b/logs/service.go
@@ -61,6 +61,10 @@ type FindOptions struct {
 
 // FindResultToPB перевод в proto представление FindResult
 func FindResultToPB(result *FindResult) *pb.FindResult {
+	if result == nil {
+		return nil
+	}
+
 	findResult := &pb.FindResult{Total: 0} // поле стало deprecated всегда возвращаем 0
 
 	entries := make([]*pb.LogEntry, 0, len(result.Entries))
@@ -70,7 +74,7 @@ func FindResultToPB(result *FindResult) *pb.FindResult {
 	findResult.Entries = entries
 
 	if result.Filter != nil {
-		findResult.Filter.Q = result.Filter.Q
+		findResult.Filter = &pb.Filter{Q: result.Filter.Q}
 	}
 	if result.Options != nil {
 		findResult.Options = FindOptionsToPB(result.Options)
@@ -89,7 +93,11 @@ func FindResultToPB(result *FindResult) *pb.FindResult {
 
 // FindResultFromPB перевод из proto представления FindResult
 func FindResultFromPB(result *pb.FindResult) *FindResult {
-	findResult := new(FindResult)
+	if result == nil {
+		return nil
+	}
+
+	findResult := &FindResult{}
 
 	entries := make([]*Entry, 0, len(result.Entries))
 	for _, e := range result.Entries {
@@ -98,7 +106,7 @@ func FindResultFromPB(result *pb.FindResult) *FindResult {
 	findResult.Entries = entries
 
 	if result.Filter != nil {
-		findResult.Filter.Q = result.Filter.Q
+		findResult.Filter = &Filter{Q: result.Filter.Q}
 	}
 	if result.Options != nil {
 		findResult.Options = FindOptionsFromPB(result.Options)