CertSafari
    Snowflake SnowPro Specialty: Native Apps· Lessons

    Domain 4 · Lesson 11/12

    Uninstalling a Native App: DROP APPLICATION and CASCADE

    Manage the consumer application lifecycle.

    9 min read
    9.67% of exam
    3 sources
    Published 5 Oct 2026
    Docs as of 4 Oct 2026

    What you will be able to do

    • Decide when to suspend an app's compute instead of uninstalling it
    • Prepare for uninstall by finding, transferring, or exporting what the app owns
    • Predict what DROP APPLICATION removes, with and without CASCADE, including the loss of app roles

    1.Uninstall is permanent, so consider suspending instead

    Dropping a Snowflake Native App cannot be undone. The APPLICATION object and everything inside it are removed, and APPLICATION objects do not support UNDROP. If the goal is only to cut compute costs for a while, you can suspend the resources the app created and keep the app installed. For an app with containers, suspend its compute pool with ALTER COMPUTE POOL ... SUSPEND. For a warehouse-based app, suspend the warehouses it created.

    A suspended app is still installed and still receives upgrades. Upgrades continue to be applied during your configured maintenance window.

    Checkpoint 1 of 5· Check yourself

    A consumer suspends the compute pool of an SPCS-based app to save money for a month. What happens if the provider releases an upgrade during that month?

    The trade-off is simple. Suspending a compute pool stops the container workloads and their associated compute charges, and the app stays available to be resumed later. Suspending a warehouse the app created likewise stops compute charges while the app stays installed. Uninstalling gives up the app, its data, and its roles, and none of that can be restored. When the need is temporary cost control, suspending is the safer choice, as long as you accept that upgrades keep arriving on schedule.

    Sources12

    2.Preparing to uninstall

    An app can create objects outside its own boundary, such as warehouses, databases, and stages. These objects are in your account, but the app object may own them. Before you drop the app, decide what you want to keep:

    - Transfer ownership of outside objects to one of your own roles. If you don't, you may lose access to them. - For containerized apps, drop the app's compute pools or transfer their ownership. If a compute pool is still bound to the app when the app is dropped, the pool becomes unusable and must be dropped manually. Reinstalling the same app later does not make it usable again. - Export any data inside the APPLICATION boundary that you need, through the app or with the provider's help. That data is deleted along with the app. - Cancel any paid listing subscription separately in Snowflake Marketplace. Dropping the app does not cancel it.

    To uninstall, use a role with OWNERSHIP on the app. Transferring ownership of the outside objects requires MANAGE GRANTS on them. In SQL, list what the app owns, transfer the objects you want to keep, and then drop the app.

    Find objects the app owns outside itselfsql
    SHOW OBJECTS OWNED BY APPLICATION hello_snowflake_app;
    Take ownership of an object you want to keepsql
    GRANT OWNERSHIP ON DATABASE na_external_db TO ROLE consumer_role;

    Snowsight offers the same choice in its Uninstall dialog. You can transfer the selected objects to a role, or delete all objects created outside the app. Snowsight can only transfer databases, schemas, tables, and views.

    Checkpoint 2 of 5· Put it in order

    Put these steps in order to keep an app-created database and then uninstall the app

    1. 1.Run GRANT OWNERSHIP to transfer the database to one of your roles
    2. 2.Run DROP APPLICATION without CASCADE
    3. 3.Run SHOW OBJECTS OWNED BY APPLICATION to list objects the app owns outside itself

    The owner of the app can already inspect it, but you can delegate that work. The MONITOR privilege on the app lets another role run DESCRIBE APPLICATION and SHOW OBJECTS OWNED BY APPLICATION, among other commands. That means a colleague can review the list of app-owned objects before the owner transfers them and drops the app.

    Sources13

    3.What DROP APPLICATION removes, with and without CASCADE

    DROP APPLICATION has a single option, CASCADE. Without CASCADE, the command returns an error if the app still owns any objects outside itself. You have to transfer those objects first. With CASCADE, every object the app owns is dropped. This includes tables whose primary or unique keys are referenced by foreign keys in other tables. It also includes consumer-owned objects inside an app-owned container: a schema you transferred to your role is still dropped if the app owns its parent database. To keep a child object, transfer ownership of its app-owned parent as well.

    Drop an app together with everything it still ownssql
    DROP APPLICATION hello_snowflake_app CASCADE;

    Two more effects matter. First, all app roles are dropped with the app, so any access those roles granted on objects in your account is lost. Second, some things are not removed. If you configured an event table, it belongs to you and is not affected.

    DROP APPLICATION outcomes
    SituationResult
    No CASCADE, app owns no outside objectsApp and everything inside it are dropped
    No CASCADE, app still owns outside objectsCommand returns an error
    CASCADEAll app-owned objects are dropped, including consumer-owned objects inside them
    App rolesDropped; access granted through them is lost
    Dropped appCannot be recovered; UNDROP is not supported

    Checkpoint 3 of 5· Check yourself

    An analyst role read a consumer table only through an application role that the app granted. After DROP APPLICATION, what access does the analyst have?

    Checkpoint 4 of 5· Exam question

    A consumer is deciding whether to manually upgrade their app instance. The provider's automatic upgrade process has already begun for that instance. What happens if the consumer now tries to run a manual upgrade?

    Checkpoint 5 of 5· Exam question

    Which view lets a consumer monitor the progress of an in-flight application upgrade, including states such as QUEUED and UPGRADING?

    Objects outside the app that you did not drop are not lost when the app goes. Warehouses, databases, and stages the app created outside its boundary remain in your account and are fully owned by you once the app is dropped without CASCADE. Developers who use the Snowflake CLI meet the same choice: snow app teardown drops the application object and the application package, and its --cascade option also drops objects the app owns, such as compute pools, without prompting.

    Sources21

    Exam traps

    Each one states something that sounds right. Open it to see what is actually true.

    1. 1.After you transfer a schema to your own role, DROP APPLICATION ... CASCADE will leave it alone.Why is that wrong?

      CASCADE drops every object the app owns, including consumer-owned objects inside it. A schema whose parent database is still owned by the app is dropped too.

      Covered in What DROP APPLICATION removes, with and without CASCADE

    2. 2.Uninstalling a paid Marketplace app stops the billing.Why is that wrong?

      Dropping the app does not cancel the subscription. You must cancel it separately in Snowflake Marketplace.

      Covered in Preparing to uninstall

    Practise it for real

    Uninstall a test Native App while keeping a database it created

    1. 1.Run SHOW OBJECTS OWNED BY APPLICATION hello_snowflake_app; using a role with OWNERSHIP on the app

      Why: Lists every object outside the app that the app owns. Without CASCADE, these objects would block the drop.

      You should see: A list of objects and their types, for example na_external_db of type DATABASE

    2. 2.Run GRANT OWNERSHIP ON DATABASE na_external_db TO ROLE consumer_role; for each object you want to keep

      Why: Objects that are still owned by the app are either deleted by CASCADE or cause a plain DROP to fail

      You should see: The database no longer appears in SHOW OBJECTS OWNED BY APPLICATION

    3. 3.Run DROP APPLICATION hello_snowflake_app; without CASCADE

      Why: Without CASCADE, the drop fails if the app still owns anything outside itself, so you can't lose an object you missed

      You should see: hello_snowflake_app successfully dropped. If an app-owned object remains, you get an error instead

    Stuck? Get a nudge

    If the drop fails, run SHOW OBJECTS OWNED BY APPLICATION again. Something you meant to keep may still be owned by the app.

    Sources

    Every claim above is drawn from one of these pages, quoted as it was written on the date shown.

    1. 1.
      “suspend the app’s compute pool using ALTER COMPUTE POOL ... SUSPEND.”
      ↩︎ Uninstall is permanent, so consider suspending instead
      “Even if you reinstall the same app from the same package and version with the same name, the orphaned compute pool cannot be reused.”
      ↩︎ Preparing to uninstall
      “Your event table, if configured, is not affected: it belongs to you.”
      ↩︎ What DROP APPLICATION removes, with and without CASCADE
      “Dropping the app does not automatically cancel a paid listing subscription.”
      ↩︎ Exam trap 2
      “The app itself remains installed and subject to its upgrade schedule even while its resources are suspended.”
      ↩︎ Checkpoint
    2. 2.
      “UNDROP is not supported for APPLICATION objects.”
      ↩︎ Uninstall is permanent, so consider suspending instead
      “If CASCADE is not specified, this command returns an error if the app owns objects outside of itself.”
      ↩︎ What DROP APPLICATION removes, with and without CASCADE
      “all objects owned by the app are dropped, even if those objects contain other objects owned by the consumer.”
      ↩︎ Exam trap 1
      “To retain objects owned by the application, use the GRANT OWNERSHIP command to transfer ownership of those objects, then run this command without CASCADE.”
      ↩︎ Checkpoint
      “running this command with CASCADE also drops those objects.”
      ↩︎ Prediction
      “Any access granted by those roles on objects in the consumer account is lost.”
      ↩︎ Checkpoint
    3. 3.
      “To uninstall an app, you must use a role that has the OWNERSHIP privilege on the app.”
      ↩︎ Preparing to uninstall

    Ready to test yourself?

    Practise the 35 questions on this subdomain.

    Spotted a mistake, or was something unclear? Tell us.