What is UnregisterController?
Removes a controller from a KRaft cluster's registered controller set, taking a single controller ID. The active controller writes an UnregisterControllerRecord so the node drops out of the metadata image; this backs kafka-cluster unregister-controller and kafka-metadata-quorum remove-controller --unregister, and needs metadata version 4.4-IV2. Added on trunk after 4.3 — no released broker accepts it.
Wire Diagram
Response Header · flexible
message_size
int32 · 4B
correlation_id
int32 · 4B
tagged
var
UnregisterControllerResponse v0
ThrottleTimeMs
int32 · 4B
ErrorCode
int16 · 2B
ErrorMessage?
string (compact)
tagged
var
Schema & Example
Schema { "ThrottleTimeMs": int32, "ErrorCode": int16, "ErrorMessage": string? }
Example { "ThrottleTimeMs": 0, "ErrorCode": 0, "ErrorMessage": "NETWORK_EXCEPTION" }