Delivery Retry

The Delivery Retry screen lists unsuccessful event deliveries and allows manual delivery retries.

delivery retry

Retries

Automatic vs. Manual

  • When the first attempt to deliver an event to a subscriber fails, Events Hub tries to resend it automatically, following the settings registered in the policy.

  • If all automatic attempts fail, the event falls into the retry queue of the Delivery Retry screen, where you can try to resend it manually.

Filters

By default, the list shows up to 50 unsuccessful deliveries for the current day, but you can use the available filters to extend or refine the search. These are:

  • From: to choose the starting date of the search. You can select up to 14 days before the current date.

  • To: to choose the end date of the search. You can select today or up to 14 days ago.

The search can only be done within a maximum period of 14 days up to the current date.

  • Status: filters the returned status codes, which can be:

    • Success (different from expected);

    • Client Error;

    • Or Server Error;

  • Max Results: maximum number of results per page, it can be 50, 100, 300, or 500.

  • Event ID: filters by unique event identifier, generated whenever a request is received from a publisher. This identifier is displayed on the Event Status screen.

  • Subscribers: filters by subscribers, allowing you to select several at the same time.

  • Contexts: filters by contexts, allowing you to select several at the same time.

The query can return up to 500 items, as defined in the Max Results field. If the delivery you are looking for is not among the first 500 items, you can find it on the Event Status screen and resend it manually by clicking the VIEW IN DELIVERY RETRY button. Alternatively, you can copy the event ID and search for it in the Event ID field.

Manual Retry

In the list of unsuccessful deliveries, each subscriber is in one row. Through the SELECT column, you can select items to try delivering them manually. You may also mark all items at once by marking the Select All option above the table. After choosing the events you want to resend, click the RETRY SELECTED button.

If the manual delivery is successful, the item will be removed from the Delivery Retry list on the next query. If the return received is different than expected, the item will return to the failed list and can be resent again.

You can delete one or more events from the Delivery Retry screen. To do this:

  1. select the unit or batch of events to delete;

  2. click the DELETE SELECTED button;

  3. confirm the action.

By clicking the icon icon more, you can choose which columns you want to display on the Delivery Retry screen:

delivery retry table
Columns
  • The date and time in the DATE column refer to the attempted delivery to subscribers by Events Hub.

  • The EVENT ID column displays a unique identifier for the event. The list shows the items per subscriber, so there may be more than one row with the same event ID. The icon icon copy copies the ID to your clipboard. This ID can be used on the Event Status screen to see details of the message sent by the publisher and check the history of delivery attempts to subscribers.

  • The EXPECTED STATUS and DELIVERY STATUS columns show the HTTP return codes expected and received by the Events Hub when sending the event to subscribers. The expected code is set when registering or editing subscribers.

    If the expected return code is changed in the subscriber’s registration, this modification will only be applied to new events received by Events Hub. Events received before the modification will not use the new status code for manual retries.
  • The ENABLED TOPICS column contains the icon icon expand, which displays information about the event received by Events Hub. The publisher is only identified and displayed if there is an interceptor that validates the client ID in the policy applied to the handler (Client ID Validation or OAuth Validation).

    expand delivery retry

Unsuccessful delivery attempts are displayed per subscriber. This means that if a delivery attempt fails for more than one subscriber, there will be one item for each subscriber on the list, but all with the same event ID. You can resend the event to a specific subscriber or to all of them at the same time.

Retry delivery

Events that fall into the manual delivery list can be resent automatically through the API Event Status. To access it, go to Sensedia API Platform  API Design  API Catalog and search for "Event Status".

Below you will find best practice suggestions for delivery retry using the API above.

API’s Operation

The only and fundamental API operation for the delivery retry is /deliveries.

delivery retry api operation
  • Through GET /deliveries, you list all unsuccessful deliveries.

  • Through POST /deliveries, you can resend unsuccessful deliveries to the subscribers.

List unsuccessful deliveries

With GET /deliveries, you list all unsuccessful deliveries when their HTTP code response differs from the expected status code. To avoid overloading the system, you can limit the number of events returned in a single request. The request has a page layout and you can choose between 10, 25, 50, 100, and 500 events per page

By default, the limit for each query is 500 items

To simplify the response, you can include in the GET request the following parameters:

  • _sortBy: defines by which field the item sorting is done. Accepted values:

    • date;

    • eventId;

    • contextName;

    • subscriberName;

    • subscriberUrl;

    • expectedStatusCode;

    • httpStatus.

      By default, you see date.

  • _direction: defines whether the item sorting is done by descending (DESC) or ascending (ASC) order. By default, you see DESC.

  • _limit: identifies the number of items to be returned. When not provided, the default value is 50.

  • _offset: identifies the initial item to be returned. When not provided, the default value is 0.

Filtering by Dates

To improve the search for specific events, you can use the following parameters:

  • beginDate: filters events based on a start date within a date range.

  • endDate: filters events based on an end date within a date range.

Retry Delivery

With POST /deliveries, you can retry sending unsuccessful deliveries by using the following parameters:

  • eventId and

  • subscriberId.

The maximum number of items allowed in the request is 500 unsuccessful deliveries. If the total number of items is greater than 500, send the maximum value (500) in a first request, wait, and use the GET /deliveries endpoint again for the remaining events.
Thanks for your feedback!
EDIT

Share your suggestions with us!
Click here and then [+ Submit idea]