apprise icon indicating copy to clipboard operation
apprise copied to clipboard

Fallback or failure notification

Open TheKalpit opened this issue 7 months ago • 3 comments

:bulb: The Idea

It would be great to have a feature which can ideally let a user define a fallback notification service, i.e. attempt to send a notification to serviceA, but if it fails send to serviceB. or if that's too complicated to implement, at least a "global catch-all" which sends an alert if any notification fails.

Is it something already possible?

TheKalpit avatar May 29 '25 10:05 TheKalpit

I would have to think about that; i wouldn't say its an impossible objective, but wouldn't it be easier to just notify both end points?

also if one endpoint is failing, maybe there is a bug I need to look into?

caronc avatar Sep 07 '25 17:09 caronc

@caronc Not really a bug. Here's a possible scenario - you set up a notification service (via API keys or whatever), and the API keys got invalidated in future (manually or auto-expiry) or could be an error in the notification service itself. It'd be a useful feature to know when that notification failed.

TheKalpit avatar Sep 07 '25 18:09 TheKalpit

I would also appreciate this feature. Other possible scenarios: network issues, rate limits, or provider downtime.

It would be helpful to have a configuration option that defines fallback notification channels or a retry mechanism.

Proposal

  • Fallback via tags: Allow users to specify a tag (or multiple tags) that should be used if a primary notification fails. This makes it easy to define alternative delivery paths (e.g., if Slack is down, fall back to email).

  • Retry option (minimal viable implementation): Allow specifying a retry count and/or backoff time before failing over completely. This would cover transient issues without requiring a full fallback chain.

Example config idea:

urls:
  - gchat://workspace/room1: # primary
      - tag: someTag
  - mailto://user:[email protected][email protected]: # fallback
      - tag: fallback

# Error handling config
error:
  tag: fallback         # if primary fails, try services tagged "fallback"
  retry:
    attempts: 3         # retry 3 times
    delay: 10s          # wait 10 seconds between retries

egvimo avatar Oct 02 '25 06:10 egvimo