Why Umbraco Keeps Redirecting You to the Install Screen

Mar 16, 2026 - Huw Reddick

Troubleshooting Guide:

If you’ve just deployed an Umbraco site and it keeps bouncing you back to the installer, take a breath — you’re not alone. This is one of the most common “I’m losing my mind” moments in the Umbraco world, and the good news is: the root cause is almost always the same.

This guide walks you through the real reasons Umbraco thinks it needs to reinstall itself, how to diagnose the issue, and the exact steps to fix it. Whether you're on Umbraco 7 or Umbraco 17, the underlying logic hasn’t changed much.

Let’s get you unstuck.


Why Umbraco Redirects to the Installer

Umbraco only shows the installer when it believes:

  1. There is no database,

  2. It cannot connect to the database, or

  3. The database schema doesn’t match the version of Umbraco you’re running.

That’s it. Every “redirect to install” problem is a variation of one of those three.


Common Root Causes (Across All Versions)

1. The database is missing or empty

This happens when:

  • You deploy without including the SQLite file

  • Your hosting environment wipes the /umbraco/Data folder

  • You accidentally delete your SQL Express .mdf file

  • Your CI/CD pipeline recreates the database on every deploy

Symptom:
Umbraco creates a fresh set of tables and immediately sends you to /install.

Fix:
Restore the database file or point the site at the correct database server.


2. The connection string is wrong

This is the number one cause of install loops.

Typical culprits:

  • Wrong server name

  • Wrong credentials

  • Missing umbracoDbDSN entry

  • AppSettings override wiping your connection string on deploy

  • Azure App Service settings overriding your local config

Fix:
Double‑check your connection string in:

  • appsettings.json

  • appsettings.Production.json

  • Hosting environment variables

Make sure the value you think is being used is actually the one being used.


3. The database schema doesn’t match the Umbraco version

This one is sneaky.

It happens when:

  • You upgrade Umbraco locally but deploy an older database

  • You deploy a fresh SQLite file over an existing one

  • You restore a backup from a different version

  • Your CI/CD pipeline rebuilds the DB from scratch

Symptom:
Umbraco tries to run migrations, fails, and falls back to the installer.

Fix:
Ensure the database schema matches the version of Umbraco running in production.
If needed, run the site locally with the production DB attached to let migrations complete.


4. Database user lacks required permissions (db_owner)

Even if the database exists and the connection string is correct, Umbraco still needs to:

  • Read schema

  • Write schema

  • Run migrations

  • Create tables

  • Update tables

If the SQL user doesn’t have db_owner (or equivalent) permissions, Umbraco cannot complete these steps. When migrations fail silently, Umbraco assumes the database is not installed → installer loop.

Why this matters

This is one of the most frustrating causes because:

  • The connection string works

  • The database exists

  • Tables may even be partially created

  • Everything looks “fine” at first glance

But the installer keeps appearing because Umbraco can’t finish its setup.

Fix:Grant the SQL user:

  • db_owner on the target database

  • Or at minimum: ALTER, CREATE TABLE, INSERT, UPDATE, DELETE, SELECT

Once permissions are corrected, Umbraco completes migrations and the redirect loop disappears.


5. The ConfigurationStatus value is wrong

Older versions (7/8) rely heavily on this.

If the value in the database doesn’t match the version in your config, Umbraco assumes installation is incomplete.

Fix:
Update the value in the database to match your Umbraco version.


6. Installer API errors

If /install/api/GetSetup returns a 500 error, the installer can’t complete and loops forever.

Fix:
Check logs for:

  • Missing permissions

  • Locked SQLite files

  • Missing folders

  • Broken migrations


How to Diagnose the Problem (Fast)

Here’s the quick triage flow I recommend:

Step 1 — Check the logs

Look in:

  • /umbraco/Logs/UmbracoTraceLog.*.json

Search for:

  • “Could not connect to database”

  • “Schema mismatch”

  • “Migration failed”

  • “Cannot open database file”

Step 2 — Verify the connection string

Run the site locally using the production connection string.
If it installs locally → your production DB is empty or unreachable.
If it errors locally → your connection string is wrong.

Step 3 — Check the database

Open the DB and confirm:

  • Tables exist

  • They contain data

  • The umbracoMigration table has entries

  • The umbracoUser table has rows

If the database is empty → that’s your answer.

Step 4 — Confirm the Umbraco version matches the schema

If you upgraded Umbraco locally but didn’t migrate the production DB, you’ll get an install loop.


Fixes by Scenario

Scenario A — “It works locally but not on the server”

Your connection string is being overwritten on deploy.

Fix:
Set the connection string in the hosting environment, not in config files.


Scenario B — “It keeps creating new tables every time I deploy”

Your SQLite file is being replaced or deleted.

Fix:
Mark the SQLite file as:

  • Content: Copy if newer

  • Or exclude it from deployment entirely

  • Or switch to SQL Server for production


Scenario C — “It installed once, then broke after an upgrade”

Your schema is out of sync.

Fix:
Run the site locally with the production DB attached to complete migrations.


Scenario D — “Installer API returns 500”

Permissions or file locks are blocking the installer.

Fix:
Ensure the app has write access to:

  • /umbraco/Data

  • /umbraco/Logs

  • /wwwroot (for some setups)


Final Thoughts

The “redirect to install” loop feels catastrophic, but it’s almost always a simple configuration issue.
Once you know where to look — connection strings, database files, schema versions — the fix becomes straightforward.