Skip to content

fix(relay): allow deleting an archived channel - #7859

Closed
BachirSaaS wants to merge 1 commit into
block:mainfrom
BachirSaaS:fix/archived-channel-delete
Closed

BachirSaaS wants to merge 1 commit into
block:mainfrom
BachirSaaS:fix/archived-channel-delete

Conversation

@BachirSaaS

Copy link
Copy Markdown

Summary

An archived channel (e.g. an ephemeral huddle expired by the reaper) could never be deleted: both the admin-event validator (side_effects.rs) and the ingest archive gate only excepted kind:9002 unarchive, so a kind:9008 delete returned 400 invalid: channel is archived and the channel was stranded in the owner's community list forever (#2954, delete half of #7596).

"Archive then delete" is the natural flow — this allows kind:9008 through both guards alongside the existing unarchive exception. Desktop's unarchive (kind:9002 with archived=false) already matches the accepted shape; only the delete half was broken.

Testing

cargo test -p buzz-relay --lib side_effects:: green; the DB-gated ingest suites run in CI.

Fixes #2954
Fixes #7596

@BachirSaaS
BachirSaaS requested a review from a team as a code owner September 24, 2026 00:32
@github-actions

github-actions Bot commented Sep 24, 2026

Copy link
Copy Markdown

🔐 Codex Security Review

Status: review required for the current range.

The current range is d01e5f82058463709a22e93bb4cd795da5f53e10...1affa648b9b41f678475154ce7d88c03185da072.
A new review must complete for this exact range. When manual authorization
is required, a Block organization member must comment exactly
@buzz-security-review 1affa648b9b41f678475154ce7d88c03185da072 to authorize a new review.
Any previous review applies only to its recorded range.

An archived channel (e.g. an ephemeral huddle expired by the reaper)
could never be deleted: both the admin-event validator and the ingest
archive gate only excepted kind:9002 unarchive, so kind:9008 delete
returned 400 'invalid: channel is archived' and the channel was stranded
in the owner's list forever (block#2954, block#7596). 'Archive then delete' is the
natural flow — allow kind:9008 through both guards alongside the
existing unarchive exception.

Desktop's unarchive (kind:9002 with archived=false) already matches the
accepted shape; only the delete half was broken.

Signed-off-by: BachirSaaS <bachir.dagodi@gmail.com>
@BachirSaaS
BachirSaaS force-pushed the fix/archived-channel-delete branch from 88770a4 to 1affa64 Compare September 24, 2026 01:17
@BachirSaaS

Copy link
Copy Markdown
Author

Closing — we'll maintain these fixes in our fork instead. Thanks for the look.

@BachirSaaS BachirSaaS closed this Sep 24, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant