KIP-1312 — Support unregistering controllers
Accepted Kafka 4.4 KRaftAdminProtocol
Adds an `UnregisterControllerRequest` RPC, an `UnregisterControllerRecord` metadata record, and a corresponding Admin API so operators can manually remove a controller registration, rejecting ids that belong to the current voter set. Brokers can already be unregistered via `UnregisterBrokerRequest`, but controllers cannot, so stale controller registrations — notably from KRaft observers that replicate the log without voting — permanently block feature level upgrades.
Protocol Impact
BrokerRegistration · UnregisterBroker · ControllerRegistration · RemoveRaftVoter · UnregisterController
Details
| Author | Kevin Wu |
| Status | Accepted |
| Kafka Version | 4.4 |
| JIRA | KAFKA-20395 |
| Wiki | View on Apache Wiki |
| Created | 2026-04-02 |
| Last Modified | 2026-08-24 |
Explore how this KIP affects the Kafka protocol in the Protocol Explorer, or see the full KIP database.