Deploying an app that's already live
Why the platform asks whether your app is already running, and what you are agreeing to.
Before an app's first readiness check and deploy, the platform asks one question: is this app already running somewhere, with real users or data? This page explains why, and what each answer means.
The question
Is this app already running somewhere, with real users or data?
- No, it's new
- Yes, it's already live
You answer it per app. Each app gets its own question — an answer never carries over from another app, even one created from the same repository or a different branch of it.
If it's new
Answer No, it's new. Nothing special happens; continue to the readiness scan and deploy.
If it's already live
Read this before continuing. Preparing an app for this platform restructures its code, and:
- The platform does not move your existing data, and cannot support migrating an app that is already in production.
- The deploy-prep changes can break deployments on other providers you already run.
- You continue at your own risk.
Back up your code and your data first, and ask your coding agent to work on a new branch so you can roll back. Only then confirm with I understand, continue.
Through a coding agent
An agent connected over MCP records your answer with acknowledge_migration_risk, and both check_deploy_readiness and deploy_app refuse to run until it is recorded. The agent must ask you about the specific app — it will not answer on your behalf, and for a live app it relays the warning above and waits for your explicit consent before recording it.
Why the gate exists
The prompt that prepares your app changes its structure. For a throwaway or brand-new app that is fine. For an app with real users and data it is a decision only you can make, with backups in hand. The gate makes sure that decision is taken on purpose, once, per app.