FinalizeUpgrade Added in v26.2

POST /redpanda.core.admin.v2.FeaturesService/FinalizeUpgrade

Requests that the controller commit the cluster to the latest logical version reported uniformly by all members, activating version-gated features and making the prior version unavailable for downgrade. Valid only when the cluster configuration features_auto_finalization is disabled. The target version is determined from current cluster state — there is no version parameter.

The request returns success once accepted by the controller leader; the actual advance happens asynchronously and depends on cluster preconditions (member-version uniformity, node liveness) observed by the controller's background loop. If those preconditions are not met, the advance is silently skipped and the operator must re-issue once the cluster is in a safe state. Operators should poll cluster_version (via GET /v1/features) to confirm.

Headers

  • Connect-Protocol-Version number Required

    Define the version of the Connect protocol

    Value is 1.

  • Connect-Timeout-Ms number

    Define the timeout, in ms

application/json

Body Required

object object

FinalizeUpgradeRequest takes no parameters: the target version is determined from current cluster state.

Additional properties are NOT allowed.

Responses

  • 200 application/json

    Success

    FinalizeUpgradeResponse is returned on successful submission. The actual version advance happens asynchronously on the controller leader's background loop; poll the cluster's active version (via GET /v1/features) to confirm.

    Additional properties are NOT allowed.

  • default application/json

    Error

    Hide response attributes Show response attributes object
    • code string

      The status code, which should be an enum value of [google.rpc.Code][google.rpc.Code].

      Values are canceled, unknown, invalid_argument, deadline_exceeded, not_found, already_exists, permission_denied, resource_exhausted, failed_precondition, aborted, out_of_range, unimplemented, internal, unavailable, data_loss, or unauthenticated.

    • details array[object]

      A list of messages that carry the error details. There is no limit on the number of messages.

      Hide details attributes Show details attributes object

      Contains an arbitrary serialized message along with a @type that describes the type of the serialized message, with an additional debug field for ConnectRPC error details.

      • debug object

        Detailed error information.

        Additional properties are allowed.

      • type string

        A URL that acts as a globally unique identifier for the type of the serialized message. For example: type.googleapis.com/google.rpc.ErrorInfo. This is used to determine the schema of the data in the value field and is the discriminator for the debug field.

      • value string(binary)

        The Protobuf message, serialized as bytes and base64-encoded. The specific message type is identified by the type field.

    • message string

      A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the [google.rpc.Status.details][google.rpc.Status.details] field, or localized by the client.

POST /redpanda.core.admin.v2.FeaturesService/FinalizeUpgrade
curl \
 --request POST 'http://localhost:9644/redpanda.core.admin.v2.FeaturesService/FinalizeUpgrade' \
 --header "Content-Type: application/json" \
 --header "Connect-Protocol-Version: 1" \
 --header "Connect-Timeout-Ms: 42.0"
Request examples
# Headers
Connect-Protocol-Version: 1
Connect-Timeout-Ms: 42.0

# Payload
{}
Response examples (200)
{}
Response examples (default)
{
  "code": "not_found",
  "details": [
    {
      "debug": {},
      "type": "string",
      "value": "@file"
    }
  ],
  "message": "string"
}