---
title: SendError
summary: An error that occurred while sending a request.
url: https://www.fastly.com/documentation/reference/compute/sdks/rust/fastly/http/request/struct.SendError/
---

**Kind:** Struct  
**Module:** [request](https://www.fastly.com/documentation/reference/compute/sdks/rust/fastly/http/request/)  
**Package:** fastly 0.13.1  
**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request.rs#3642

```rust
pub struct SendError { /* private fields */ }
```

An error that occurred while sending a request.

While the body of a request is always consumed when sent, you can recover the headers and other
request metadata of the request that failed using `SendError::into_sent_req()`.

use [`SendError::root_cause()`](https://www.fastly.com/documentation/reference/compute/sdks/rust/fastly/http/request/struct.SendError/#method-root_cause) to inspect details about what caused the error.

## Methods

### backend_name

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request.rs#3672

```rust
fn backend_name(&self) -> &str
```

Get the name of the backend that returned this error.

**Parameters**

- `self`: `&Self`

**Returns**

`&str`

### into_sent_req

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request.rs#3699

```rust
fn into_sent_req(self) -> Request
```

Convert the error back into the request that was originally sent.

Since the original request's body is consumed by sending it, the body in the returned
request is empty. To add a new body to the request, use [`Request::with_body()`](https://www.fastly.com/documentation/reference/compute/sdks/rust/fastly/http/request/struct.Request/#method-with_body), for example:

```rust
if let Err(e) = bereq.send("my_backend") {
    let new_body = Body::from("something new");
    let new_req = e.into_sent_req().with_body(new_body);
    new_req.send("my_other_backend")?;
}
```

**Parameters**

- `self`: `Self`

**Returns**

`Request`

### root_cause

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request.rs#3679

```rust
fn root_cause(&self) -> &SendErrorCause
```

Get the underlying cause of this `SendError`.

This is the same cause that would be returned by `err.source().downcast_ref::<SendErrorCause>()`, but more direct.

**Parameters**

- `self`: `&Self`

**Returns**

`&SendErrorCause`

## Trait implementations

### impl Debug for SendError

#### fmt

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request.rs#3640

```rust
fn fmt(&self, f: &mut Formatter<'_>) -> Result
```

**Parameters**

- `self`: `&Self`
- `f`: `&mut $crate::fmt::Formatter`

**Returns**

`$crate::fmt::Result`

### impl Display for SendError

#### fmt

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request.rs#3640

```rust
fn fmt(&self, __formatter: &mut Formatter<'_>) -> Result
```

**Parameters**

- `self`: `&Self`
- `__formatter`: `&mut ::core::fmt::Formatter`

**Returns**

`::core::fmt::Result`

### impl Error for SendError

#### source

**Source:** https://docs.rs/crate/fastly/0.13.1/source/src/http/request.rs#3640

```rust
fn source(&self) -> Option<&(dyn Error + 'static)>
```

**Parameters**

- `self`: `&Self`

**Returns**

`::core::option::Option<&(dyn Error + 'static)>`

## Auto trait implementations

- `Freeze`
- `RefUnwindSafe`
- `Send`
- `Sync`
- `Unpin`
- `UnsafeUnpin`
- `UnwindSafe`

## Blanket implementations

- `Any`
- `Borrow<T>`
- `BorrowMut<T>`
- `Downcast`
- `DowncastSync`
- `ErasedDestructor`
- `From<T>`
- `Into<U>`
- `IntoEither`
- `Same`
- `ToString`
- `TryFrom<U>`
- `TryInto<U>`
