diff --git a/pkg/data/data.go b/pkg/data/data.go
index c94a7e250e0902caa07e37a40a89209f9a410480..2e016a6fa0a2841628a306038353f514c0a692cf 100644
--- a/pkg/data/data.go
+++ b/pkg/data/data.go
@@ -9,6 +9,8 @@ import (
 
 const DefaultFieldDelimiter = "."
 
+var ErrDataIsNil = errors.New("data is nil")
+
 type DeleteValueType struct{}
 
 var DeleteValue DeleteValueType
@@ -169,6 +171,10 @@ func getPath(field string, delim ...string) []string {
 }
 
 func Set(field string, data, value any, delim ...string) error {
+	if data == nil {
+		return ErrDataIsNil
+	}
+
 	return set(getPath(field, delim...), data, value)
 }
 
diff --git a/pkg/data/data_test.go b/pkg/data/data_test.go
index 5427dea82443ba59c5df5cc449904b93b0ce31a5..a77df7adb37501865655283c01cfd8d40124b2b8 100644
--- a/pkg/data/data_test.go
+++ b/pkg/data/data_test.go
@@ -316,6 +316,12 @@ func TestSet(t *testing.T) {
 			[]any{(map[string]any)(nil), map[string]any{"b": "2"}},
 			assert.Error,
 		},
+		{
+			"Set object to nil data",
+			args{"a", nil, "1"},
+			nil,
+			assert.Error,
+		},
 	}
 	for _, tt := range tests {
 		t.Run(tt.name, func(t *testing.T) {