RSS Error Handling & Monitoring #535

Closed
opened 2025-11-24 22:13:52 +00:00 by Vylpes · 2 comments
Owner

Epic: #528
Story Points:


Implement comprehensive error handling and monitoring for RSS feeds

Acceptance Criteria

No acceptance criteria

Subtasks

  • Add logging for feed fetch failures (#597)
  • Implement retry logic for temporary failures (#597)
  • Add a "failed attempts" counter to the database entity (#596)
  • Add a "disabled" flag to the database entity (#596)
  • Disable feeds after consecutive failures (#597)
  • Create /rss test command to manually test a feed URL (#598)
  • Create /rss disable command to manually disable a feed (#598)
  • Create /rss enable command to manually enable a feed (#598)
  • Update logic to only run enabled feeds (#597)
  • Log all RSS activity for debugging purposes (#597)
  • Update tests (#599)

Development tickets

  • #596 Add FailedAttempts and Disabled columns to RssFeed
  • #597 RSS fetch retry, failure counting, auto-disable, and activity logging
  • #598 Add /rss test, /rss disable, and /rss enable commands
  • #599 Tests for RSS error handling and monitoring

Notes

  • A "failed attempt" is only incremented after 1 initial retry
  • Disable a feed after 5 consecutive failures
  • Only a moderator can run /rss test, /rss disable and rss enable
Epic: #528 Story Points: --- Implement comprehensive error handling and monitoring for RSS feeds ## Acceptance Criteria *No acceptance criteria* ## Subtasks - [x] Add logging for feed fetch failures (#597) - [x] Implement retry logic for temporary failures (#597) - [x] Add a "failed attempts" counter to the database entity (#596) - [x] Add a "disabled" flag to the database entity (#596) - [x] Disable feeds after consecutive failures (#597) - [x] Create `/rss test` command to manually test a feed URL (#598) - [x] Create `/rss disable` command to manually disable a feed (#598) - [x] Create `/rss enable` command to manually enable a feed (#598) - [x] Update logic to only run enabled feeds (#597) - [x] Log all RSS activity for debugging purposes (#597) - [x] Update tests (#599) ### Development tickets - #596 Add FailedAttempts and Disabled columns to RssFeed - #597 RSS fetch retry, failure counting, auto-disable, and activity logging - #598 Add /rss test, /rss disable, and /rss enable commands - #599 Tests for RSS error handling and monitoring ## Notes - A "failed attempt" is only incremented after 1 initial retry - Disable a feed after 5 consecutive failures - Only a moderator can run `/rss test`, `/rss disable` and `rss enable`
Vylpes added this to the 3.4.0 milestone 2025-11-24 22:17:40 +00:00
Smithy-bot removed their assignment 2026-11-07 11:08:11 +00:00
Smithy-bot stopped working 2026-11-07 11:08:15 +00:00
4 minutes 38 seconds
Member

Implemented RSS error handling & monitoring on branch cursor/535-rss-error-handling (from feature/epic-528-rss-feeds).

PR: #600

  • Added FailedAttempts / Disabled columns + migration (#596)
  • FetchFeedWithRetry (1 retry before counting a failure); timer increments failures, auto-disables after 5, resets on success; only enabled feeds run; activity logging (#597)
  • New moderator commands /rss test, /rss disable, /rss enable; list shows [disabled] (#598)
  • Tests updated — local yarn build + yarn test PASS (11 suites / 135 tests) (#599)

Subtasks #596–#599 closed. Issue moved to step/review and assigned to Vylpes. Never approved own PR; did not merge.

Implemented RSS error handling & monitoring on branch `cursor/535-rss-error-handling` (from `feature/epic-528-rss-feeds`). PR: https://git.vylpes.xyz/RabbitLabs/vylbot-app/pulls/600 - Added `FailedAttempts` / `Disabled` columns + migration (`#596`) - `FetchFeedWithRetry` (1 retry before counting a failure); timer increments failures, auto-disables after 5, resets on success; only enabled feeds run; activity logging (`#597`) - New moderator commands `/rss test`, `/rss disable`, `/rss enable`; list shows `[disabled]` (`#598`) - Tests updated — local `yarn build` + `yarn test` PASS (11 suites / 135 tests) (`#599`) Subtasks `#596`–`#599` closed. Issue moved to `step/review` and assigned to Vylpes. Never approved own PR; did not merge.
Smithy-bot added spent time 2026-11-07 11:08:26 +00:00
6 minutes
Vylpes removed their assignment 2026-11-07 18:05:12 +00:00
Smithy-bot removed their assignment 2026-11-08 11:06:54 +00:00
Smithy-bot stopped working 2026-11-08 11:06:54 +00:00
40 seconds
Member

QA results — PASS

Tested on feature/epic-528-rss-feeds @ 939dd657 (PR #600 merge).

Automated

  • yarn install --frozen-lockfile PASS
  • yarn build (tsc) PASS
  • yarn test PASS — 11 suites / 135 tests / 2 snapshots
  • Focused RSS suites PASS — 70 tests (RssFeedHelper, RssTimer, commands/rss, RssFeed entity)

Acceptance / notes coverage

  • FailedAttempts / Disabled columns + migration present; defaults 0 / false
  • FetchFeedWithRetry retries once before counting a failure
  • Timer only processes enabled feeds (FetchAllEnabled); increments failures; auto-disables after 5; resets on success; activity logging
  • Moderator-gated (ModerateMembers) commands: /rss test, /rss disable, /rss enable; list shows [disabled]
  • Tests updated for error-handling paths (including disable-after-5)

Moved step/testing → step/uat and assigned to Vylpes.

Live Discord smoke (/rss test|disable|enable + failed-feed auto-disable) left for human UAT.

## QA results — PASS Tested on `feature/epic-528-rss-feeds` @ `939dd657` (PR #600 merge). ### Automated - `yarn install --frozen-lockfile` PASS - `yarn build` (tsc) PASS - `yarn test` PASS — **11 suites / 135 tests / 2 snapshots** - Focused RSS suites PASS — **70 tests** (`RssFeedHelper`, `RssTimer`, `commands/rss`, `RssFeed` entity) ### Acceptance / notes coverage - `FailedAttempts` / `Disabled` columns + migration present; defaults `0` / `false` - `FetchFeedWithRetry` retries once before counting a failure - Timer only processes enabled feeds (`FetchAllEnabled`); increments failures; auto-disables after **5**; resets on success; activity logging - Moderator-gated (`ModerateMembers`) commands: `/rss test`, `/rss disable`, `/rss enable`; list shows `[disabled]` - Tests updated for error-handling paths (including disable-after-5) Moved `step/testing` → `step/uat` and assigned to Vylpes. Live Discord smoke (`/rss test|disable|enable` + failed-feed auto-disable) left for human UAT.
Smithy-bot added spent time 2026-11-08 11:07:18 +00:00
3 minutes
Vylpes 2026-11-08 12:21:59 +00:00
  • closed this issue
  • removed the
    step
    uat
    label
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Total time spent: 14 minutes 18 seconds
Smithy-bot
14 minutes 18 seconds
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Blocks Depends on
#531 RSS Add Command
RabbitLabs/vylbot-app
Reference
RabbitLabs/vylbot-app#535
No description provided.