---
name: event-notifications-en-cfe-integrations
title: Collecting failed events
description: As part of the Integrations in Event Notifications, you can enable collecting failed events and take appropriate action.
last-updated: 2025-07-01
---

> ## Documentation Index
> The table of contents for this documentation set is at https://cloud.ibm.com/docs/event-notifications?format=markdown
> The index for all IBM Cloud docs is at: https://cloud.ibm.com/docs/llms.txt
> Use these files to discover more information as needed.

# Collecting failed events
{: #en-cfe-integrations}

As part of the Integrations in Event Notifications, you can enable collecting failed events and take appropriate action.
{: shortdesc}

Collect failed events helps you to identify which messages have failed and take remedial action.

When a message fails to be delivered a set number of times, the failed message ends up in a IBM Cloud Object Storage bucket. You can able to identify the subscription or topic to which that failed message belongs and take further action, if required.

Before you enable collecting failed events in **Destinations**, make sure that you have an IBM Cloud Object Storage instance [created and configured](https://cloud.ibm.com/objectstorage/create) in the same account as your Event Notifications instance.
{: note}

If you are using Event Notifications CLI or API to configure IBM Cloud Object Storage service instance, make sure that you have enabled authorization to grant access between services before integrating with IBM Cloud Object Storage. For more information, see [Using authorizations to grant access between services](#en-using-s2s-auth2).
{: important}

If you want to enforce access restrictions based on IP addresses, it is recommended to use context-based restrictions instead of a legacy bucket firewall.  For details, see [Restricting access by network context](https://cloud.ibm.com/docs/cloud-object-storage?topic=cloud-object-storage-setting-a-firewall&format=markdown) in the Object Storage documentation.  If your setup must continue use of a legacy firewall, use the [Support Center](https://cloud.ibm.com/unifiedsupport/supportcenter){: external} to create a support case for assistance with the IP range information.
{: note}

To configure and collect failed events, do the following steps:

1. From your Event Notifications instance dashboard, click **Integrations**. By default, the Key Management and Collect Failed Events tile will be displayed.

1. Click **Connect** in the **Collect Failed Events** tile. The **Collect Failed Events** side panel displays.

1. **Instance name** - Select the IBM Cloud Object Storage instance name from the list, if you already have an IBM Cloud Object Storage instance. Otherwise, click the **Create new instance** link, to create an IBM Cloud Object Storage instance.

   When you select an IBM Cloud Object Storage instance, the authorization between the services will be created internally between the two service instances, if the authorization between the services doesn't exist.
   {: note}

1. **Bucket name** - Enter the Bucket name to be used for storing the failed events.

   You can get the bucket name from your IBM Cloud Object Storage instance. For more information, see [Bucket name](#en-cos-bucket-name2).

   The pattern (is a combination of destination name and notification ID) that Event Notifications uses to store the object in IBM Cloud Object Storage bucket is similar to the following example :

   `Rhonda Macejkovic/013f87bc-0537-4dad-8511-8cb054890ffc.json`,

   where `Rhonda Macejkovic` is destination name and `013f87bc-0537-4dad-8511-8cb054890ffc` is notification ID. `.json` is the payload format.

1. **Endpoint** - Enter the IBM Cloud Object Storage endpoint URL. For more information, see [Endpoint url](#en-endpoint-url2).

1. Click **Save**.

1. From your Event Notifications instance dashboard, click **Destinations**.

1. Click the toggle switch to **ON** status under the **Collect failed events** column for the destination for which you want to collect the failed events. A success message is displayed for switching `ON` to collect failed events for the selected destination.

Alternatively, you can use pre-built, open-source, and enterprise-ready Terraform IBM Modules (TIM) to provision your infrastructure through [Event Notifications](https://registry.terraform.io/modules/terraform-ibm-modules/event-notifications/ibm/latest){: external} module, see comprehensive [example](https://registry.terraform.io/modules/terraform-ibm-modules/event-notifications/ibm/latest/examples/advanced){: external} that covers creating an Event Notifications instance, an IBM Cloud Object Storage instance and bucket, configuring the integration between Event Notifications and IBM Cloud Object Storage and setting up authorization policies between the services.
{: tip}

## Available list of destinations for collecting failed events
{: #en-collect-failedevents-destinationslist}

The following destinations can collect failed events:

* [Email Destinations](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-en-destinations-email&format=markdown)
   * [Inbuilt Email](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-en-destination-email-destination-default&format=markdown)
   * [Custom Domain Email](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-en-destinations-custom-email&format=markdown)
* [SMS Destinations](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-en-destinations-sms&format=markdown)
   * [Inbuilt SMS](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-en-destinations-sms&format=markdown)
   * [Custom SMS](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-en-destinations-sms-custom&format=markdown)
* [Webhook](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-en-destinations-webhook&format=markdown)
* [Slack](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-en-destinations-slack&format=markdown)
* [MSTeams](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-en-destinations-msteams&format=markdown)
* [PagerDuty](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-en-destinations-pagerduty&format=markdown)
* [ServiceNow](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-en-destinations-servicenow&format=markdown)
* [CodeEngine](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-en-destinations-codeengine&format=markdown)
* [IBM Cloud Object Storage](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-en-destinations-cloud-object-storage&format=markdown)
* Push Notifications
   * [Android Push Notifications(FCM)](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-en-push-fcm&format=markdown)
   * [iOS Push Notifications(APN's)](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-en-push-apns&format=markdown)
   * [Chrome Push Notifications](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-en-push-chrome&format=markdown)
   * [Firefox Push Notifications](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-en-push-firefox&format=markdown)
   * [Safari Push Notifications](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-en-push-safari&format=markdown)
   * [Huawei Push Notifications](https://cloud.ibm.com/docs/event-notifications?topic=event-notifications-en-push-huawei&format=markdown)


After configuration and enabling collecting of failed events for a destination, the failed events gets added to the IBM Cloud Object Storage bucket. You can take further action on the failed events as per your requirements.

If you disconnect **Collect Failed Events** from the **Integrations** > **Collect Failed Events** overflow menu option, then all the destinations that are enabled to collect the failed events, will be switched to the **OFF** state.
{: note}

## Using authorizations to grant access between services
{: #en-using-s2s-auth2}

Use IBM Cloud&reg; Identity and Access Management (IAM) to create or remove an authorization that grants one service access to another service.

### Creating an authorization in the console
{: #en-using-s2s-console2}

1. In the IBM Cloud console, click **Manage** > **Access (IAM)**, and select **Authorizations**.

1. Click **Create**.

1. Select a source account.
   * If the source service that needs access to the target service is in this account, select **This account**.

1. Select a **Source service** as **Event Notifications**.

1. Specify whether you want the authorization to be for all resources or Resources based on selected attributes. If you selected Resources based on selected attributes, then specify the **Add attributes**: only source resource group or only source service instance.

1. Select a **Target service** as **IBM Cloud Object Storage**.

1. For the target service, specify whether you want the authorization to be for all instances, only to a specific instance in the account, or instances only in a certain resource group.

1. Select both the roles (Reader, and Object Writer) to assign access to the source service that accesses the target service.

   If you have selected only one of these two roles (Reader or Object Writer) during the service to service authorization, you cannot write or read from the IBM Cloud Object Storage bucket. You get an error for service to service authorization failure in these cases. Make sure to re-create an authorization between the services with both the roles selected.
   {: important}

1. Click **Authorize**.

### Creating an authorization by using the CLI
{: #en-create-auth-cli2}

To authorize a source service to access a target service, run the `ibmcloud iam authorization-policy-create` command.

For more information about all of the parameters that are available for this command, see [ibmcloud iam authorization-policy-create](https://cloud.ibm.com/docs/cli?topic=cli-ibmcloud_commands_iam&format=markdown#ibmcloud_iam_authorization_policy_create).

## How to find the Bucket name in the IBM Cloud Object Storage service instance?
{: #en-cos-bucket-name2}

1. Login to your IBM Cloud account.

1. Navigate to **Resource List** in the menu.

1. Navigate to **Storage** in the Resource list.

1. Click the IBM Cloud Object Storage name that will display your IBM Cloud Object Storage console.

1. In the IBM Cloud Object Storage console, navigate to **Buckets**.

1. Select and copy the required Bucket name. Use this copied Bucket name in the **Collect Failed Events** screen.

## How to find the Endpoint URL of the IBM Cloud Object Storage service instance?
{: #en-endpoint-url2}

Endpoints are used with your credentials (Bucket name, API Key, SDK) to tell your service where to look for your bucket.

`private` IBM Cloud Object Storage endpoints will not be supported for new integrations, since Event Notifications now uses VPC network. It is recommended to use `direct` IBM Cloud Object Storage endpoints while creating new integrations. Existing integrations over `private` endpoints will continue to work.
{: note}

1. Login to your IBM Cloud account.

1. Navigate to **Resource List** in the menu.

1. Navigate to **Storage** in the Resource list.

1. Click the IBM Cloud Object Storage name that will display your IBM Cloud Object Storage console.

1. In the IBM Cloud Object Storage console, navigate to **Buckets** in the menu.

1. Click the required **Bucket name** to view the **Bucket configuration** details.

1. Navigate to **Endpoints** section and copy your public or private endpoints as required.