# Case: creating stuck

Use when `cluster_cr.status.phase` is `Pending` or `Creating` longer than
expected, or user reports create stuck.

## Steps

1. Confirm `cluster_cr` phase/reason (hard) via `method-cluster-cr`.
2. **APPBox Gate** (hard): CP APPBox from `spec.networkName`.  
   - Not Active → handoff `diag-appbox`. Stop.  
   - Active → continue.
3. Intent: DP `TidbCluster` Ready/conditions (hard). Soft: events.
4. Intent: DP Pods for PD/TiKV/TiDB not Running (soft→detail if needed).
5. Read provider file for early-task suspects:
   - EKS: Guardian, ProviderConfig, NodeRole, Namespace, then TiDBCluster /
     Nodegroup (`diag-cluster/references/provider-eks.md`).
   - GKE: Guardian, Namespace, certs, then TiDBCluster / NodePool
     (`diag-cluster/references/provider-gke.md`).
   - AKS: Guardian, Namespace, DiskEncryption, then TiDBCluster / NodePool
     (`diag-cluster/references/provider-aks.md`).
6. If task Done condition unclear and code reachable: read
   `cluster-controller/controllers/cluster/taskbuilder.go` then the named
   task under `task/common` or `task/{eks,gke,aks}`.

## After recovery

Re-run domain Health checklist (`healthy-exit`).
