---
title: "Gets details for the latest upgrade performed on this Service Fabric compose deployment."
method: GET
path: "/ComposeDeployments/{deploymentName}/$/GetUpgradeProgress"
tags: ["Compose Deployment"]
---

# Gets details for the latest upgrade performed on this Service Fabric compose deployment.

`GET /ComposeDeployments/{deploymentName}/$/GetUpgradeProgress`

Returns the information about the state of the compose deployment upgrade along with details to aid debugging application health issues.

## Path parameters

- `deploymentName` string, required

## Query parameters

- `api-version` '6.0-preview', required
- `timeout` integer

## Response `200`

Details about the compose deployment upgrade.

- ComposeDeploymentUpgradeProgressInfo — Describes the parameters for a compose deployment upgrade.
  - `DeploymentName` string — The name of the target deployment.
  - `ApplicationName` string — The name of the target application, including the 'fabric:' URI scheme.
  - `UpgradeState` 'Invalid' | 'ProvisioningTarget' | 'RollingForwardInProgress' | 'RollingForwardPending' | 'UnprovisioningCurrent' | 'RollingForwardCompleted' | 'RollingBackInProgress' | 'UnprovisioningTarget' | 'RollingBackCompleted' | 'Failed' — The state of the compose deployment upgrade.
  - `UpgradeStatusDetails` string — Additional detailed information about the status of the pending upgrade.
  - `UpgradeKind` 'Invalid' | 'Rolling' — The kind of upgrade out of the following possible values.
  - `RollingUpgradeMode` 'Invalid' | 'UnmonitoredAuto' | 'UnmonitoredManual' | 'Monitored' | 'UnmonitoredDeferred' — The mode used to monitor health during a rolling upgrade. The values are UnmonitoredAuto, UnmonitoredManual, Monitored, and UnmonitoredDeferred.
  - `ForceRestart` boolean — If true, then processes are forcefully restarted during upgrade even when the code version has not changed (the upgrade only changes configuration or data).
  - `UpgradeReplicaSetCheckTimeoutInSeconds` integer — The maximum amount of time to block processing of an upgrade domain and prevent loss of availability when there are unexpected issues. When this timeout expires, processing of the upgrade domain will proceed regardless of availability loss issues. The timeout is reset at the start of each upgrade domain. Valid values are between 0 and 42949672925 inclusive. (unsigned 32-bit integer).
  - `MonitoringPolicy` MonitoringPolicyDescription — Describes the parameters for monitoring an upgrade in Monitored mode.
    - `FailureAction` 'Invalid' | 'Rollback' | 'Manual' — The compensating action to perform when a Monitored upgrade encounters monitoring policy or health policy violations. Invalid indicates the failure action is invalid. Rollback specifies that the upgrade will start rolling back automatically. Manual indicates that the upgrade will switch to UnmonitoredManual upgrade mode.
    - `HealthCheckWaitDurationInMilliseconds` string — The amount of time to wait after completing an upgrade domain before applying health policies. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds.
    - `HealthCheckStableDurationInMilliseconds` string — The amount of time that the application or cluster must remain healthy before the upgrade proceeds to the next upgrade domain. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds.
    - `HealthCheckRetryTimeoutInMilliseconds` string — The amount of time to retry health evaluation when the application or cluster is unhealthy before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds.
    - `UpgradeTimeoutInMilliseconds` string — The amount of time the overall upgrade has to complete before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds.
    - `UpgradeDomainTimeoutInMilliseconds` string — The amount of time each upgrade domain has to complete before FailureAction is executed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds.
  - `ApplicationHealthPolicy` ApplicationHealthPolicy — Defines a health policy used to evaluate the health of an application or one of its children entities.
    - `ConsiderWarningAsError` boolean — Indicates whether warnings are treated with the same severity as errors.
    - `MaxPercentUnhealthyDeployedApplications` integer — The maximum allowed percentage of unhealthy deployed applications. Allowed values are Byte values from zero to 100. The percentage represents the maximum tolerated percentage of deployed applications that can be unhealthy before the application is considered in error. This is calculated by dividing the number of unhealthy deployed applications over the number of nodes where the application is currently deployed on in the cluster. The computation rounds up to tolerate one failure on small numbers of nodes. Default percentage is zero.
    - `DefaultServiceTypeHealthPolicy` ServiceTypeHealthPolicy — Represents the health policy used to evaluate the health of services belonging to a service type.
      - `MaxPercentUnhealthyPartitionsPerService` integer — The maximum allowed percentage of unhealthy partitions per service. Allowed values are Byte values from zero to 100 The percentage represents the maximum tolerated percentage of partitions that can be unhealthy before the service is considered in error. If the percentage is respected but there is at least one unhealthy partition, the health is evaluated as Warning. The percentage is calculated by dividing the number of unhealthy partitions over the total number of partitions in the service. The computation rounds up to tolerate one failure on small numbers of partitions. Default percentage is zero.
      - `MaxPercentUnhealthyReplicasPerPartition` integer — The maximum allowed percentage of unhealthy replicas per partition. Allowed values are Byte values from zero to 100. The percentage represents the maximum tolerated percentage of replicas that can be unhealthy before the partition is considered in error. If the percentage is respected but there is at least one unhealthy replica, the health is evaluated as Warning. The percentage is calculated by dividing the number of unhealthy replicas over the total number of replicas in the partition. The computation rounds up to tolerate one failure on small numbers of replicas. Default percentage is zero.
      - `MaxPercentUnhealthyServices` integer — The maximum allowed percentage of unhealthy services. Allowed values are Byte values from zero to 100. The percentage represents the maximum tolerated percentage of services that can be unhealthy before the application is considered in error. If the percentage is respected but there is at least one unhealthy service, the health is evaluated as Warning. This is calculated by dividing the number of unhealthy services of the specific service type over the total number of services of the specific service type. The computation rounds up to tolerate one failure on small numbers of services. Default percentage is zero.
    - `ServiceTypeHealthPolicyMap` ServiceTypeHealthPolicyMapItem[] — Defines a ServiceTypeHealthPolicy per service type name. The entries in the map replace the default service type health policy for each specified service type. For example, in an application that contains both a stateless gateway service type and a stateful engine service type, the health policies for the stateless and stateful services can be configured differently. With policy per service type, there's more granular control of the health of the service. If no policy is specified for a service type name, the DefaultServiceTypeHealthPolicy is used for evaluation.
      - `Key` string, required — The key of the service type health policy map item. This is the name of the service type.
      - `Value` ServiceTypeHealthPolicy, required — Represents the health policy used to evaluate the health of services belonging to a service type.
        - `MaxPercentUnhealthyPartitionsPerService` integer — The maximum allowed percentage of unhealthy partitions per service. Allowed values are Byte values from zero to 100 The percentage represents the maximum tolerated percentage of partitions that can be unhealthy before the service is considered in error. If the percentage is respected but there is at least one unhealthy partition, the health is evaluated as Warning. The percentage is calculated by dividing the number of unhealthy partitions over the total number of partitions in the service. The computation rounds up to tolerate one failure on small numbers of partitions. Default percentage is zero.
        - `MaxPercentUnhealthyReplicasPerPartition` integer — The maximum allowed percentage of unhealthy replicas per partition. Allowed values are Byte values from zero to 100. The percentage represents the maximum tolerated percentage of replicas that can be unhealthy before the partition is considered in error. If the percentage is respected but there is at least one unhealthy replica, the health is evaluated as Warning. The percentage is calculated by dividing the number of unhealthy replicas over the total number of replicas in the partition. The computation rounds up to tolerate one failure on small numbers of replicas. Default percentage is zero.
        - `MaxPercentUnhealthyServices` integer — The maximum allowed percentage of unhealthy services. Allowed values are Byte values from zero to 100. The percentage represents the maximum tolerated percentage of services that can be unhealthy before the application is considered in error. If the percentage is respected but there is at least one unhealthy service, the health is evaluated as Warning. This is calculated by dividing the number of unhealthy services of the specific service type over the total number of services of the specific service type. The computation rounds up to tolerate one failure on small numbers of services. Default percentage is zero.
  - `TargetApplicationTypeVersion` string — The target application type version (found in the application manifest) for the application upgrade.
  - `UpgradeDuration` string — The estimated amount of time that the overall upgrade elapsed. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds.
  - `CurrentUpgradeDomainDuration` string — The estimated amount of time spent processing current Upgrade Domain. It is first interpreted as a string representing an ISO 8601 duration. If that fails, then it is interpreted as a number representing the total number of milliseconds.
  - `ApplicationUnhealthyEvaluations` HealthEvaluationWrapper[] — List of health evaluations that resulted in the current aggregated health state.
    - `HealthEvaluation` HealthEvaluation — Represents a health evaluation which describes the data and the algorithm used by health manager to evaluate the health of an entity.
      - `Kind` 'Invalid' | 'Event' | 'Replicas' | 'Partitions' | 'DeployedServicePackages' | 'DeployedApplications' | 'Services' | 'Nodes' | 'Applications' | 'SystemApplication' | 'UpgradeDomainDeployedApplications' | 'UpgradeDomainNodes' | 'Replica' | 'Partition' | 'DeployedServicePackage' | 'DeployedApplication' | 'Service' | 'Node' | 'Application' | 'DeltaNodesCheck' | 'UpgradeDomainDeltaNodesCheck' | 'ApplicationTypeApplications' | 'NodeTypeNodes', required — The health manager in the cluster performs health evaluations in determining the aggregated health state of an entity. This enumeration provides information on the kind of evaluation that was performed. Following are the possible values.
      - `AggregatedHealthState` 'Invalid' | 'Ok' | 'Warning' | 'Error' | 'Unknown' — The health state of a Service Fabric entity such as Cluster, Node, Application, Service, Partition, Replica etc.
      - `Description` string — Description of the health evaluation, which represents a summary of the evaluation process.
  - `CurrentUpgradeDomainProgress` CurrentUpgradeDomainProgressInfo — Information about the current in-progress upgrade domain. Not applicable to node-by-node upgrades.
    - `DomainName` string — The name of the upgrade domain
    - `NodeUpgradeProgressList` NodeUpgradeProgressInfo[] — List of upgrading nodes and their statuses
      - `NodeName` string — The name of a Service Fabric node.
      - `UpgradePhase` 'Invalid' | 'PreUpgradeSafetyCheck' | 'Upgrading' | 'PostUpgradeSafetyCheck' — The state of the upgrading node.
      - `PendingSafetyChecks` SafetyCheckWrapper[] — List of pending safety checks
        - `SafetyCheck` SafetyCheck — Represents a safety check performed by service fabric before continuing with the operations. These checks ensure the availability of the service and the reliability of the state.
          - `Kind` 'Invalid' | 'EnsureSeedNodeQuorum' | 'EnsurePartitionQuorum' | 'WaitForPrimaryPlacement' | 'WaitForPrimarySwap' | 'WaitForReconfiguration' | 'WaitForInbuildReplica' | 'EnsureAvailability', required — The kind of safety check performed by service fabric before continuing with the operations. These checks ensure the availability of the service and the reliability of the state. Following are the kinds of safety checks.
      - `UpgradeDuration` string — The estimated time spent processing the node since it was deactivated during a node-by-node upgrade.
  - `StartTimestampUtc` string — The estimated UTC datetime when the upgrade started.
  - `FailureTimestampUtc` string — The estimated UTC datetime when the upgrade failed and FailureAction was executed.
  - `FailureReason` 'None' | 'Interrupted' | 'HealthCheck' | 'UpgradeDomainTimeout' | 'OverallUpgradeTimeout' — The cause of an upgrade failure that resulted in FailureAction being executed.
  - `UpgradeDomainProgressAtFailure` FailureUpgradeDomainProgressInfo — Information about the upgrade domain progress at the time of upgrade failure.
    - `DomainName` string — The name of the upgrade domain
    - `NodeUpgradeProgressList` NodeUpgradeProgressInfo[] — List of upgrading nodes and their statuses
      - `NodeName` string — The name of a Service Fabric node.
      - `UpgradePhase` 'Invalid' | 'PreUpgradeSafetyCheck' | 'Upgrading' | 'PostUpgradeSafetyCheck' — The state of the upgrading node.
      - `PendingSafetyChecks` SafetyCheckWrapper[] — List of pending safety checks
        - `SafetyCheck` SafetyCheck — Represents a safety check performed by service fabric before continuing with the operations. These checks ensure the availability of the service and the reliability of the state.
          - `Kind` 'Invalid' | 'EnsureSeedNodeQuorum' | 'EnsurePartitionQuorum' | 'WaitForPrimaryPlacement' | 'WaitForPrimarySwap' | 'WaitForReconfiguration' | 'WaitForInbuildReplica' | 'EnsureAvailability', required — The kind of safety check performed by service fabric before continuing with the operations. These checks ensure the availability of the service and the reliability of the state. Following are the kinds of safety checks.
      - `UpgradeDuration` string — The estimated time spent processing the node since it was deactivated during a node-by-node upgrade.
  - `ApplicationUpgradeStatusDetails` string — Additional details of application upgrade including failure message.

## Other responses

- `default` — The detailed error response.

---

[API](https://skmtc.net/azure/apis/servicefabric-servicefabric.md) · [All operations](https://skmtc.net/azure/apis/servicefabric-servicefabric/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/azure/servicefabric-servicefabric/versions/6ebed3032b57/schema)
