# CustomReason

The corresponding Action will only be taken if *all* of the conditions specified here are met.

- Source: [`aws-batch/lib/job-definition-base.ts`](https://github.com/aws/aws-cdk/blob/v2.275.0/packages/aws-cdk-lib/aws-batch/lib/job-definition-base.ts#L187)
- Type last changed: v2.96.0 · 13 Sep 2023

## Example

```ts
const jobDefn = new batch.EcsJobDefinition(this, 'JobDefn', {
   container: new batch.EcsEc2ContainerDefinition(this, 'containerDefn', {
    image: ecs.ContainerImage.fromRegistry('public.ecr.aws/amazonlinux/amazonlinux:latest'),
    memory: cdk.Size.mebibytes(2048),
    cpu: 256,
  }),
  retryAttempts: 5,
  retryStrategies: [
    batch.RetryStrategy.of(batch.Action.EXIT, batch.Reason.CANNOT_PULL_CONTAINER),
  ],
});
jobDefn.addRetryStrategy(
  batch.RetryStrategy.of(batch.Action.EXIT, batch.Reason.SPOT_INSTANCE_RECLAIMED),
);
jobDefn.addRetryStrategy(
  batch.RetryStrategy.of(batch.Action.EXIT, batch.Reason.CANNOT_PULL_CONTAINER),
);
jobDefn.addRetryStrategy(
  batch.RetryStrategy.of(batch.Action.EXIT, batch.Reason.custom({
    onExitCode: '40*',
    onReason: 'some reason',
  })),
);
```

## Properties

- `onExitCode`: string — A glob string that will match on the job exit code.

  **Default:** will not match on the exit code

  For example, `'40*'` will match 400, 404, 40123456789012

- `onReason`: string — A glob string that will match on the reason returned by the exiting job For example, `'CannotPullContainerError*'` indicates that container needed to start the job could not be pulled.

  **Default:** will not match on the reason

- `onStatusReason`: string — A glob string that will match on the statusReason returned by the exiting job.

  **Default:** will not match on the status reason

  For example, `'Host EC2*'` indicates that the spot instance has been reclaimed.
