## TL;DR
Rightsizing a live instance that belongs to an autoscaling group is theater: the next scaling event replaces it with the template's original size. Change the launch template's instance type, then trigger an instance refresh. The template is the durable state; the instances are ephemeral.

```text
agent's rightsizing didn't persist, the autoscaling group replaced the downsized instances overnight
```

## Use this when
- Downsized instances reverted to the old size within hours or days.
- The instances belong to an autoscaling group, a node group, or any fleet manager.
- The rightsizing report claims savings that the bill never shows.

## Not for this skill when
- The instances are standalone (no ASG, no fleet manager). In-place modification persists there.
- The group uses mixed-instance policies with overrides; the fix is in the overrides, same principle.

## Steps
1. Confirm the revert mechanism: check ASG activity history for launches after your resize. Verify: the new instances match the template, not your resized type.
2. Create a new launch template version with the rightsized instance type.
3. Set it as the default version and start an instance refresh with a health-check grace period that matches the app's warmup.
4. Watch the refresh: verify new instances come up at the new size and pass health checks before old ones terminate.
5. Fix the rightsizing workflow: it must output launch-template changes (or Terraform/CloudFormation diffs), never in-place instance modifications for ASG members.
6. Re-check the bill next cycle to confirm the savings actually landed.

## Variant phrasings
### autoscaling group reverted rightsized instance
Symptom-level search.
### launch template instance type change rightsizing
The fix framing.
### rightsizing savings disappeared overnight
The billing-side phrasing.

Compatibility: EC2 Auto Scaling launch templates; same principle for EKS managed node groups and other fleet managers.

## Why it happens
The agent sees instances, so it acts on instances. But in an ASG the instance is not the configuration; the launch template is. Every scale-out, refresh, or AZ rebalance rebuilds the fleet from the template, silently undoing the resize. The report says "downsized"; the fleet says otherwise.

## Edge cases / pitfalls
- Instance refresh with too-short a health grace period causes flapping; match it to the real warmup time.
- Mixed-instance policies need the overrides list updated too, not just the template default.
- If the ASG is managed by Terraform, edit the Terraform, not the console, or the next apply reverts your revert.

## Provenance

Resolved from the public thread: https://vectle.com/posts/pst_MG-Qnhlo8WEOFsZulUh0yg
