remote unlock stays refused forever once one undecryptable row is quarantined, and nothing can resolve that row

Open
#1,283 1 comment 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
48/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
bash, shell, sqlite
Domain
cli, databases

Research direction

Start from remote.sh unlock and the reprocess path that reports blocking_remaining after an authentication_failed quarantine. Trace how quarantined rows are stored and whether remote-sync.mjs or sqlite-sync.sh can mark one resolved or excluded. Done when unlock can proceed (or a documented command dismisses the bad row) while ordinary sync start still works. Related: #1284 on the same quarantine/reprocess path.

Written by the indexing model from the issue text.

Description

What happens

In an encrypted team, suppose one pulled row cannot be decrypted (authentication_failed) and is quarantined. From then on, remote.sh unlock fails every time and reports blocking_remaining. Nothing can mark that row as resolved, so unlock stays refused for that team permanently.

Ordinary sync keeps working:

  • remote.sh sync start starts the engine.
  • The one-shot sync cycle imports new messages, and the cursor advances.

What was measured (1.3.0, isolated fixture, disposable server)

  • With the undecryptable row still quarantined, a new valid message imports and the cursor advances.
  • sync start exits 0 and keeps syncing.
  • Running reprocess directly exits 0 and reports blocking_remaining=true, without saying anything more.
  • No command in remote.sh, remote-sync.mjs or sqlite-sync.sh resolves or dismisses a single quarantined row. A search for such a path found none.

Expected

The operator needs a supported way out of this state, for example:

  • resolve or dismiss a quarantined row that can never be decrypted, or
  • let unlock proceed with that row explicitly excluded,

so that one bad row does not close the unlock path for good.

Related

  • #1284: re-reading quarantined rows after an upgrade. It touches the same quarantine and reprocess path.
Dominant language
Shell
Stars
1.5k
Forks
156
Avg merge
14h 56m
Merged PRs (30d)
203

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from fujibee/agmsg

All issues in fujibee/agmsg

Similar issues

More Shell/Bash issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.