Skip to main content
← Back to list
01Issue
FeatureOpenSwamp ClubPublic
AssigneesNone

Relationships

#4582 Docs: team members' CLI retries reads refused during a serve failover, and the new recovery failure code

Opened by stack72 · 11/10/2026

Follow-up to swamp-club#4579, which changes how a team member's CLI handles a serve node that does not lead the datastore.

What changes in the CLI

  • Reads a member sends to serve (chunk reads, the commit feed, change reads, the chunk check) are now retried by the CLI itself for about 15 seconds when serve answers serve_not_leader (without inFlight) or serve_follower_behind. When the refusal names a leader on the same host, the CLI follows it for that read. Commits are never retried this way.
  • An interrupted command's recovery that serve keeps refusing past that bound ends with datastore_v3_catch_up_unreachable (exit 75). The writer marker stays, and the next command resumes the recovery.
  • A recovery that fails for any other reason now carries the code datastore_v3_recovery_failed (exit 1) and names the commit and the reason.

Pages to update

  • content/manual/how-to/swamp-serve/run-multi-instance-deployment.md: the section on serve_not_leader says a refusal without inFlight changed nothing and to retry it. Add that the CLI already retries reads for about 15 seconds, so a member sees this error for a read only when a takeover lasts longer than that.
  • content/manual/how-to/troubleshoot-your-swamp-repo.md: the list of codes that say whether retrying can help should include datastore_v3_recovery_failed (not retryable as is: fix the named cause, or delete the writer marker the message names to give up the recovery) and say that datastore_v3_catch_up_unreachable can also come from serve refusing reads during a failover.
02Bog Flow
◉OPEN○TRIAGED○IN PROGRESS○SHIPPED

Open

11/10/2026, 1:28:04 PM

No activity in this phase yet.

03Sludge Pulse

Sign in to post a ripple.