MembershipChangeInProgressException

class MembershipChangeInProgressException(message: String = DEFAULT_MEMBERSHIP_IN_PROGRESS_MESSAGE, val reason: MembershipRefusal? = null) : Exception

Thrown by RaftNode.changeMembership when a membership change is already in progress (a config entry is uncommitted), and by RaftNode.transferLeadership for the reverse direction of the same §3.10 exclusion.

The one-change-at-a-time rule is a liveness guard: it keeps the membership state machine trivial and prevents multiple joint configs from stacking. The caller should wait for the in-flight change to complete (or fail) before retrying.

reason names which of the engine's converging-membership guards refused, as a typed value rather than a message a reader has to parse (#2032). It is null on an instance this library did not throw — the message-only constructor is retained so a fake or a consumer can still raise the type — so read it as attribution when present, never as a switch that must be total.

Constructors

Link copied to clipboard
constructor(message: String = DEFAULT_MEMBERSHIP_IN_PROGRESS_MESSAGE, reason: MembershipRefusal? = null)
constructor(reason: MembershipRefusal)

Names the refusing guard and derives the message from it — the constructor the engine uses.

Properties

Link copied to clipboard
expect open val cause: Throwable?
Link copied to clipboard
expect open val message: String?
Link copied to clipboard