Cloud SQL storage auto-grow failed — disk full
gcloud sql instances describe shows dataDiskSizeGb at capacity
Focused incident mode — strips away everything but this runbook.
Symptoms
- gcloud sql instances describe shows dataDiskSizeGb at capacity
- Writes fail with 'no space left on device' or transaction log full
- Cloud SQL console shows Auto-increase storage enabled but disk is full
- Instance goes read-only or rejects writes intermittently
A full data disk on Cloud SQL turns the instance read-only and can stall writes — grow it before saturation, and treat a lingering resize failure as a manual-action incident, not a wait-for-auto event.
Evidence to grab
Collect these artifacts before you change anything — they prove (or rule out) each cause.
Disk usage and auto-increase flag
gcloud sql instances describe <INSTANCE> --format='value(settings.dataDiskSizeGb,settings.storageAutoResize,settings.storageAutoResizeLimit)'Disk usage metric
gcloud monitoring time-series list --filter='metric.type="cloudsql.googleapis.com/database/disk/utilization"' --format=json
Diagnostic flow
Run the steps in order, marking each claim confirmed or refuted. The evidence you gather feeds the ranked causes below.
Guided decision tree is ready.
Steps with commands, expected output, and pass/fail branches.
Ranked root causes
Evidence checklist
- storageAutoResize is true but the disk sits at storageAutoResizeLimit
- No recent successful resize despite rising usage
- Console shows the limit message
Confirm before fixing
gcloud sql instances describe <INSTANCE> --format='value(settings.storageAutoResize,settings.storageAutoResizeLimit)'Check the resize config
Expected: storageAutoResizeLimit set and equal to current size
Fix
gcloud sql instances patch <INSTANCE> --storage-auto-increase-limit=<NEW_LIMIT_GB>Raise the auto-increase limit so growth can resume
Expected: Updated [<INSTANCE>].
Resolution runbook
Apply from top to bottom after the cause is confirmed. Review every command before running it — risk tags are shown on each.
gcloud sql instances describe <INSTANCE> --format='value(settings.dataDiskSizeGb,settings.storageAutoResize,settings.storageAutoResizeLimit)'Confirm disk full + auto-resize config
gcloud sql instances patch <INSTANCE> --storage-size=<LARGER_GB> --storage-auto-increase-limit=<NEW_LIMIT_GB>Grow the disk and raise the auto-increase cap
gcloud sql operations wait <OPERATION_ID>Wait for the resize operation to complete
gcloud sql instances describe <INSTANCE> --format='value(settings.dataDiskSizeGb)'Verify the new disk size is live
Prevention
- Set storageAutoResizeLimit high enough to absorb runaway growth.
- Alert on disk utilization above 80% with a 'disk full' page.
- Keep WAL/temp growth in check with temp_file_limit for write-heavy workloads.
- Test failover and restore on a copy to prove recovery before it is needed.
Related runbooks
Same stack, same failure family — worth a skim.
No space left on device errors in application logs
App logs show 'too many connections' from the database driver
Reads from the replica return stale data
Commands marked READ CHANGE DESTRUCTIVE — never run DESTRUCTIVE commands against production data you cannot restore. Copy → verify → execute.