Why Umbraco Keeps Redirecting You to the Install Screen
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:
There is no database,
It cannot connect to the database, or
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.