Troubleshooting¶
Common issues and solutions for Dango installation and usage.
Installation Issues¶
Python Version Too Old¶
Error:
Solution:
Check your Python version and install a newer version:
# Check your version
python3 --version
# Install Python 3.11 (recommended)
# macOS:
brew install [email protected]
# Ubuntu:
sudo apt install python3.11 python3.11-venv python3-pip
Download from python.org or install from Microsoft Store.
Docker Not Found¶
Error:
Solution:
- Install Docker Desktop: docs.docker.com/desktop
- Start Docker Desktop (check system tray icon)
- Verify installation:
Can I use Dango without Docker?
You can use Dango for data syncing and dbt transformations without Docker, but Metabase dashboards and the Web UI require Docker.
Docker Desktop Not Running¶
Error:
Solution:
Docker is installed but the daemon isn't running:
- Open Docker Desktop from your Applications folder or system tray
- Wait for the Docker icon to show "Docker Desktop is running" (the whale icon stops animating)
- Verify it's ready:
If Docker Desktop won't start, try restarting your computer. On Linux, you may need to start the service manually:
pip install getdango Failed¶
Error:
Solutions:
1. Check internet connection:
2. Upgrade pip:
3. Try again:
4. If still failing, check Python version:
Permission Denied¶
Error:
Solution:
Don't use sudo with pip in a virtual environment. Check that you're in a virtual environment:
Runtime Issues¶
Background Process Behavior (macOS)¶
On macOS, dango start launches background processes that continue running after you close the terminal. This is normal — your syncs and schedules keep running.
Checking if Dango is running:
Restarting after closing terminal:
Stopping Dango:
"dango: command not found" (Virtual Environment)¶
Solution:
Make sure your virtual environment is activated:
"dango: command not found" (Global Install)¶
If you just installed Dango globally, your terminal needs to reload.
Solution:
Option 1: Restart terminal (recommended)
Close and reopen your terminal, then verify:
Option 2: Reload shell config
"dango: command not found" After pip Install¶
Problem: You ran pip install getdango (or pip install --upgrade getdango) but the dango command still points to the old version or isn't found.
Solution:
Your shell caches the location of commands. Clear the cache after installing:
This tells your shell to re-scan PATH for the dango command. If you're using a virtual environment, make sure it's activated first.
Port 8800 Already in Use¶
Error:
Solutions:
Option 1: Stop Dango (if running)
Option 2: Kill the process using the port
Option 3: Change the port
Edit .dango/project.yml and change platform.port to a different value (e.g., 8801).
Port 3000 Already in Use (Metabase)¶
Error:
Metabase fails to start because port 3000 is already in use by another application.
Solution:
Find and stop the process using port 3000:
Then restart the platform:
Common applications that use port 3000: React dev servers, Grafana, Rails applications.
Port 2718 Already in Use (dbt Docs)¶
Error:
The dbt docs server fails to start because port 2718 is occupied.
Solution:
Then restart:
Metabase Not Starting¶
Error:
Solutions:
1. Check Docker is running:
2. Check container logs:
3. Restart everything:
4. Check Docker resources:
Make sure Docker has enough resources allocated:
- Open Docker Desktop → Settings → Resources
- Allocate at least 4GB RAM
- Restart Docker Desktop
Metabase Cold Start (Slow First Launch)¶
Problem: Metabase shows a loading screen for several minutes on first launch.
This is normal. Metabase takes 2–3 minutes to initialize its internal database on the first startup. Subsequent starts are much faster.
How to check progress:
The Metabase container will show "health: starting" during initialization and "healthy" when ready. Wait for the healthy status before accessing http://localhost:8800.
Sync Failed¶
Error:
Solutions:
1. Check API credentials:
Verify your credentials in .dango/sources.yml:
2. Verify internet connection:
3. Check source-specific documentation:
Different sources have different requirements. See:
4. Run with debug logging:
Token Expired (OAuth Sources)¶
Error:
Solution:
Re-authenticate with the OAuth provider:
# Check which tokens need renewal
dango oauth status
# Option A: Refresh the token (simplest)
dango oauth refresh <oauth_name> # name from `dango oauth list`
# Option B: Re-authenticate with provider-specific command
dango oauth google_sheets
dango oauth facebook_ads
# Option C: Remove and re-add (if refresh fails)
dango oauth remove <source_type> # e.g., google_sheets
dango source add
Token lifetimes
Google tokens are refreshed automatically by dlt. Facebook tokens last 60 days and require manual re-authentication. Run dango oauth status periodically to check expiry dates.
See OAuth Troubleshooting for detailed setup and error resolution.
dbt Run Failed¶
Error:
Solutions:
1. Check your SQL syntax:
Look at the error message for the specific model file and line number.
2. Validate dbt project:
3. Run specific model:
4. Check model dependencies:
Make sure all {{ ref() }} references point to existing models.
Database Locked¶
Error:
Cause:
DuckDB uses a single-writer model — only one process can write to the database at a time. This happens when:
- Two
dango synccommands run simultaneously - A sync is running while you try to query with write access
- A previous process crashed and left a lock file
Solutions:
1. Stop all Dango processes:
2. Check for running sync processes:
Kill any stuck processes, then restart:
3. Remove stale lock files (if no processes are running):
Learn more about DuckDB's concurrency model in DuckDB.
Data Issues¶
Data Not Appearing in Metabase¶
Solutions:
1. Verify data was synced:
Open a DuckDB session to check:
duckdb data/warehouse.duckdb "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema LIKE 'staging%'"
2. Refresh Metabase schema:
After adding new sources or dbt models, tell Metabase to discover the new tables:
3. Check tables exist:
4. Check Metabase database connection:
Open Metabase → Admin → Databases → Verify DuckDB is connected
CSV File Not Loading¶
Error:
Solutions:
1. Check file path:
2. Check file permissions:
3. Check CSV format:
- Ensure file has headers
- Check for proper comma/delimiter usage
- Verify encoding (UTF-8 recommended)
4. Try with a sample:
Test with a small sample CSV first:
head -10 /path/to/your/file.csv > sample.csv
dango source add # Add sample.csv as a File Import source
Use File Import, not CSV
When adding file sources, select File Import (CSV, JSON, Parquet) in the wizard. This is the local_files source type. The legacy csv type is hidden from the wizard.
Incremental Load Issues¶
Error:
Solution:
This usually means the primary key configuration is incorrect:
-
Check your dbt model configuration:
-
Force full refresh:
Performance Issues¶
Sync Taking Too Long¶
Solutions:
1. Use incremental loads:
Instead of full refreshes, use incremental models in dbt.
2. Limit data extraction:
Configure start dates or filters in .dango/sources.yml.
3. Increase DuckDB memory:
Edit .dango/project.yml and increase database.memory_limit.
4. Check network speed:
For API sources, slow network can impact sync times.
High Memory Usage¶
Solutions:
1. Reduce DuckDB memory limit:
Edit .dango/project.yml:
2. Process data in chunks:
For large datasets, configure batch sizes in dlt sources.
3. Close unused applications:
Free up system memory by closing other applications.
Platform Issues¶
Web UI Not Loading¶
Solutions:
1. Check platform is running:
2. Verify port 8800 is accessible:
3. Check browser console:
Open browser developer tools (F12) and check for errors.
4. Try different browser:
Some browser extensions can interfere with local development.
File Watcher Not Detecting Changes¶
Solutions:
1. Check file watcher is running:
2. Verify file path configuration:
Check .dango/sources.yml for correct file paths.
3. Check file system events:
Some systems have limits on file system watchers:
Getting Help¶
If you're still experiencing issues:
1. Search Existing Issues¶
Check if someone else has had the same problem:
github.com/getdango/dango/issues
2. Enable Debug Logging¶
Run commands with debug logging for detailed output:
3. Validate Installation¶
4. Open a New Issue¶
If you can't find a solution, open an issue with:
- Dango version (
dango --version) - Operating system and version
- Python version (
python --version) - Docker version (
docker --version) - Full error message and stack trace
- Steps to reproduce
Additional Resources¶
- Installation Guide — Reinstall if needed
- Quick Start — Review basic workflows
- CLI Reference — All available commands
- Security & Authentication — Auth, OAuth, credentials
- Scheduling & Monitoring — Syncs, alerts, health checks
- Deployment — Cloud deployment guide
- GitHub Issues — Community support
Related¶
- Advanced Troubleshooting — in-depth debugging techniques and solutions
- FAQ — answers to common questions
- DuckDB & Single-Writer — understanding database locking issues