# Pod resources do not resize as expected

When requests or limits do not change as intended, separate controller selection from Kubernetes resize feasibility.

## Evidence, remedy and recovery check

### No controller action

Set `NS` to the workload namespace and `AUTOSCALER` to the PRA name:

```bash
NS=my-app
AUTOSCALER=my-app
kubectl get podresourceautoscalers -n "$NS"
kubectl describe podresourceautoscaler "$AUTOSCALER" -n "$NS"
kubectl get podresourceprofiles -n "$NS" -o yaml
```

Use the command for your selected controller. An unknown resource type means its CRD is not installed. For PRA, `Ready=True` with reason `Paused` is not active scaling: inspect `spec.paused` and the `Active` condition. For PRP, compare selectors, container names, annotations and trigger with the target Pod.

Inspect the resource and events; use [PRP fields](https://docs.kedify.io/reference/kubernetes-api/podresourceprofile/) or [PRA fields](https://docs.kedify.io/reference/kubernetes-api/podresourceautoscaler/) to correct the selected target.

### Resize is deferred or infeasible

Set `POD` to the affected Pod:

```bash
POD=my-app-pod
kubectl get pod "$POD" -n "$NS" -o json | \
  jq '{desired: [.spec.containers[] | {name, resources, resizePolicy}], actual: .status.containerStatuses, resize: .status.resize, conditions: .status.conditions}'
kubectl describe pod "$POD" -n "$NS"
kubectl get events -n "$NS" --field-selector "involvedObject.name=$POD" --sort-by=.metadata.creationTimestamp
```

Compare desired resources with the container status, resize conditions and events; the status representation varies by Kubernetes version. PRA events `PodResourceAutoscalerResizePending` or `PodResourceAutoscalerQoSInvariantBlocked` distinguish incomplete resizing from a blocked QoS change. Use the node name from `describe pod` with `kubectl describe node <node>` to inspect allocatable and allocated resources.

Free or provision feasible capacity, or follow the workload owner’s rollout procedure when a restart is required; recheck actual container resources.

### Values oscillate or revert

Check PRA, PRP, another vertical controller, dashboard actions and GitOps for overlapping writes.

Assign one writer per container resource field. Staggering timers does not resolve ownership. Restore the intended source value before retesting.

### PRA observes load but does not resize

Read the PRA events from `kubectl describe podresourceautoscaler "$AUTOSCALER" -n "$NS"`. `PodResourceAutoscalerMetricsUnavailable` indicates a metric failure; `PodResourceAutoscalerScaleFailed` indicates an attempted resize failed. If metrics are available, compare the policy’s bounds, step, consecutive samples, delay and cooldown with observed load.

Compare observed samples with the configured policy; use the [PRA load tutorial](https://docs.kedify.io/how-to/pra-vertical-scaling-with-load-generator/) on a test workload.

### Resources changed but OOM/throttling or latency worsened

Check workload pressure, restart count and current versus previous resource values.

Restore the prior PRA policy or PRP profile through its configuration owner. For a manual recommendation applied through Helm/GitOps, [revert the source change](https://docs.kedify.io/how-to/apply-recommendations-to-source/#reconcile-validate-and-revert). Verify resources, restarts and latency after reconciliation.

## Verify recovery

Check actual container resources and Pod resize events after restoring the policy. A changed desired value is insufficient if the Pod still reports a deferred or infeasible resize.

For unresolved failures, [Collect diagnostics for support](https://docs.kedify.io/troubleshooting/collecting-kedify-configuration/) with versions, namespace/target, timestamps, relevant conditions and a redacted configuration.

Related: [Vertical scaling: PRA and PRP](https://docs.kedify.io/scalers/vertical-scalers/) · [PodResourceProfile API reference](https://docs.kedify.io/reference/kubernetes-api/podresourceprofile/) · [PodResourceAutoscaler API reference](https://docs.kedify.io/reference/kubernetes-api/podresourceautoscaler/) · [Validate and undo a rightsizing change](https://docs.kedify.io/how-to/apply-recommendations-to-source/).

---
Canonical: https://docs.kedify.io/troubleshooting/vertical-scaling/
Source: src/content/docs/troubleshooting/vertical-scaling.md
Documentation index: https://docs.kedify.io/llms.txt
