diff --git a/search/document_store.go b/search/document_store.go
index 3e4c440d4c74116fcd106391939580f5ba80277d..d0437a4ef7daad902996c35e3d4a3a7ca5e9f0a8 100644
--- a/search/document_store.go
+++ b/search/document_store.go
@@ -107,6 +107,11 @@ func (ds *DocumentStore) Write(id string, data interface{}) error {
 			indexName, // index name
 			indexName, // document id
 			strings.NewReader(string(ds.jsonSettings)))
+		defer func() {
+			if res != nil {
+				res.Body.Close()
+			}
+		}()
 		if err != nil {
 			return errors.Wrapf(err, "failed to create index(%s)", indexName)
 		}
diff --git a/search/time_series.go b/search/time_series.go
index 8eb4d90eea38a5a41f326e17df33370e30c9501f..bf2022f84d1e61f0b86d6d0ed70fe23de64a822d 100644
--- a/search/time_series.go
+++ b/search/time_series.go
@@ -37,8 +37,11 @@ type TimeSeries struct {
 }
 
 // NewTimeSeries purpose:
-//	 create a time series to write e.g. api api_logs
+//
+//	create a time series to write e.g. api api_logs
+//
 // parameters:
+//
 //	name must be the openSearch index name prefix without the date, e.g. "uafrica-v3-api-api_logs"
 //		the actual indices in openSearch will be called "<indexName>-<ccyymmdd>" e.g. "uafrica-v3-api-api_logs-20210102"
 //	tmpl must be your log data struct consisting of public fields as:
@@ -225,6 +228,11 @@ func (ts *TimeSeries) Write(startTime, endTime time.Time, data interface{}) erro
 			indexName, // index name also used for document id
 			strings.NewReader(string(ts.jsonSettings)),
 		)
+		defer func() {
+			if res != nil {
+				res.Body.Close()
+			}
+		}()
 		if err != nil {
 			return errors.Wrapf(err, "failed to create index(%s)", indexName)
 		}
@@ -271,9 +279,12 @@ func (ts *TimeSeries) Write(startTime, endTime time.Time, data interface{}) erro
 }
 
 // DelOldTimeSeries parameters:
-//		indexName is index prefix before dash-date, e.g. "api-api_logs" then will look for "api-api_logs-<date>"
+//
+//	indexName is index prefix before dash-date, e.g. "api-api_logs" then will look for "api-api_logs-<date>"
+//
 // returns
-//		list of indices to delete with err==nil if deleted successfully
+//
+//	list of indices to delete with err==nil if deleted successfully
 func (ts *TimeSeries) DelOldTimeSeries(olderThanDays int) ([]string, error) {
 	if olderThanDays < 0 {
 		return nil, errors.Errorf("invalid olderThanDays=%d < 0", olderThanDays)
@@ -349,6 +360,7 @@ type IndexSettings struct {
 // Search returns docs indexed on OpenSearch document ID which cat be used in Get(id)
 // The docs value type is the same as that of tmpl specified when you created the TimeSeries(..., tmpl)
 // So you can safely type assert e.g.
+//
 //		type myType struct {...}
 //		ts := search.TimeSeries(..., myType{})
 //		docs,totalCount,err := ts.Search(...)
diff --git a/search/writer.go b/search/writer.go
index 6ba69f8dd950cd73bf02808ac4a5f44cf2095dfc..7c2a798e21b023f78ed1f05e62a562656f7048f5 100644
--- a/search/writer.go
+++ b/search/writer.go
@@ -76,6 +76,11 @@ func (writer Writer) Write(indexName string, id string, doc interface{}) (*Index
 		strings.NewReader(jsonDocStr),
 		options...,
 	)
+	defer func() {
+		if indexResponse != nil {
+			indexResponse.Body.Close()
+		}
+	}()
 	if err != nil {
 		return nil, errors.Wrapf(err, "failed to index document")
 	}