# HttpRetryEvent

HTTP events on which to retry.

- Source: [`aws-appmesh/lib/route-spec.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-appmesh/lib/route-spec.ts#L218)

## Example

```ts
declare const router: appmesh.VirtualRouter;
declare const node: appmesh.VirtualNode;

router.addRoute('route-http2-retry', {
  routeSpec: appmesh.RouteSpec.http2({
    weightedTargets: [{ virtualNode: node }],
    retryPolicy: {
      // Retry if the connection failed
      tcpRetryEvents: [appmesh.TcpRetryEvent.CONNECTION_ERROR],
      // Retry if HTTP responds with a gateway error (502, 503, 504)
      httpRetryEvents: [appmesh.HttpRetryEvent.GATEWAY_ERROR],
      // Retry five times
      retryAttempts: 5,
      // Use a 1 second timeout per retry
      retryTimeout: Duration.seconds(1),
    },
  }),
});
```

## Members

| Member | Description |
| --- | --- |
| `SERVER_ERROR` | HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511. |
| `GATEWAY_ERROR` | HTTP status codes 502, 503, and 504. |
| `CLIENT_ERROR` | HTTP status code 409. |
| `STREAM_ERROR` | Retry on refused stream. |

## Referenced by

- [`HttpRetryPolicy`](/v2/docs/aws-cdk-lib.aws_appmesh.HttpRetryPolicy).httpRetryEvents
