---
title: "unclosed-http-response-body"
description: "Detect locally acquired HTTP response bodies that are not closed."
image: "https://strider.gempir.com/og.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://strider.gempir.com/llms.txt
> Use this file to discover all available pages before exploring further.

# unclosed-http-response-body

**Default severity:** `error`

A response body retains its connection and related resources until closed.
The check follows local response aliases and accepts an explicit close or an
obvious ownership transfer such as returning the response.

## Bad

```go
response, err := http.Get(endpoint)
if err != nil {
	return err
}
return decode(response.Body)
```

## Good

```go
response, err := http.Get(endpoint)
if err != nil {
	return err
}
defer response.Body.Close()
return decode(response.Body)
```

Source: https://strider.gempir.com/analyzers/unclosed-http-response-body/index.mdx
