Use this guide when your Astro Private Cloud (APC) control plane or data plane Pods aren’t progressing to a healthy state after upgrading to 2.0.
cannot patch "astronomer-houston" with kind Deployment and references to environment variable ordering.--cascade=orphan to preserve running Pods, then retry the Helm upgrade:default.yaml configuration file that doesn’t include keys added in 2.0. If the Helm ConfigMap doesn’t explicitly set these new keys, the APC API fails at startup when it tries to read them.CrashLoopBackOff with errors like:config/default.yaml. Then restart the APC Pods:Check for locks:
Terminate long-running transactions:
minimumAstroRuntimeVersion is set to 3.1-2 or higher in the override config.astronomer-bootstrap secret connection string doesn’t include a database name suffix (for example, /main on AWS RDS or /postgres on AKS), causing connection failures. Verify the correct database name by logging in to your database.astronomer-bootstrap secret so connection ends with /<database_name>, then run a Helm upgrade.astronomer namespace (or the namespace where you install APC).Workspace.label column. If your database contains workspaces with duplicate labels, the migration fails with Prisma error P3009. Once the migration is marked as failed, all subsequent migrations are blocked, preventing the APC API from starting.Error: P3009 and the message migrate found failed migrations in the target database. APC API and worker Pods enter CrashLoopBackOff.Back up the APC database before you run DELETE on _prisma_migrations or rely on a retry of this migration.
Connect to your APC database and check for duplicate workspace labels:
Rename one of the duplicate workspace labels, using the workspace ID as a suffix to guarantee uniqueness:
Before clearing the failed Prisma record, check whether the unique constraint was applied:
label isn’t listed, the migration didn’t complete. After fixing duplicate labels, you can clear the failed migration and retry. Back up your database first, then delete only that failed migration row:label is present, the schema change may have been applied even though Prisma recorded a failure. Don’t delete the _prisma_migrations row or re-run the migration without DBA or Astronomer support — you can create conflicting schema or migration state.ruamel.yaml package.python3 --versionpip install ruamel.yaml./bin/migrate-helm-chart-values-1x-to-2x.py --dry-run my-values.yamlastronomer-bootstrap secret connection string doesn’t include a database name suffix (for example, /postgres), causing connection failures.astronomer-bootstrap secret so connection ends with /<database_name>, then run a Helm upgrade.Run migration manually:
Cluster and Deployment tables exist.fluentd key wasn’t renamed to vector in your migrated values file, or custom Fluentd resources were incompatible.vector (not fluentd) as the top-level key. Re-run the migration script if needed, or manually rename the key.