Common Errors — Grafana on Windows
Fixes for the most frequent Grafana problems on Windows: service startup failures, port conflicts, proxy errors, login issues, MSI install problems and plugin breakage after upgrades.
Service fails to start
The Grafana service enters a Stopped state immediately or won't start at all.
Diagnose
# Check service status
Get-Service -Name "Grafana"
# Read the last 50 lines of Grafana log
Get-Content "C:\Program Files\GrafanaLabs\grafana\data\log\grafana.log" -Tail 50
# Check Windows Event Viewer for service errors
Get-EventLog -LogName Application -Source "Grafana" -Newest 10Common causes & fixes
- Port in use: see the Port 3000 section below.
- Permission denied on data directory: grant the service account Full Control on C:\Program Files\GrafanaLabs\grafana\data.
- Corrupt grafana.ini: restore from backup or re-run the MSI (it won't overwrite existing config).
- Missing dependency: rarely, the MSVC runtime is missing — install the latest Visual C++ Redistributable.
Port 3000 already in use
Log shows: listen tcp :3000: bind: Only one usage of each socket address is normally permitted
# Find what process is using port 3000
netstat -ano | findstr ":3000"
# Get the process name from the PID (replace 1234 with actual PID)
Get-Process -Id 1234
# Stop the conflicting process (if safe to do so)
Stop-Process -Id 1234 -ForceIf you can't free port 3000, change Grafana's port in grafana.ini:
[server]
http_port = 3001Restart the service and update your firewall rule. See the full port change guide.
502 Bad Gateway behind reverse proxy
Browser shows 502 when accessing Grafana through Nginx or IIS.
Check Grafana is actually running
# Test from the server itself
Invoke-WebRequest -Uri "http://localhost:3000" -UseBasicParsingIf this fails, start the Grafana service first. If it succeeds, the issue is in your proxy config.
Common Nginx fixes
# Verify your proxy_pass points to the correct port
# In nginx.conf:
proxy_pass http://localhost:3000;
# Ensure these headers are set:
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;Set root_url in grafana.ini
[server]
root_url = https://grafana.yourdomain.com/
serve_from_sub_path = falseSee the full Nginx reverse proxy guide.
Can't log in — forgot admin password
# Method 1: CLI reset (stop service first)
Stop-Service -Name "Grafana"
cd "C:\Program Files\GrafanaLabs\grafanain"
.\grafana-cli.exe admin reset-admin-password NewStrongPassword!
Start-Service -Name "Grafana"
# Method 2: Environment variable (set before starting service)
$env:GF_SECURITY_ADMIN_PASSWORD = "NewStrongPassword!"
Restart-Service -Name "Grafana"MSI installation fails
- Run the MSI as Administrator (right-click → Run as administrator).
- Ensure you have x64 Windows — there is no 32-bit Grafana MSI.
- Temporarily disable antivirus during installation if it's blocking the MSI.
- Enable verbose MSI logging to diagnose: msiexec /i grafana.msi /l*v install.log
- If a previous Grafana installation is corrupted, remove it via Apps & Features before re-installing.
Plugins break after upgrade
Plugins that worked in the previous version may be incompatible with a major Grafana update.
# List installed plugins
grafana-cli plugins ls
# Update all plugins
grafana-cli plugins update-all
# Remove a broken plugin
grafana-cli plugins remove plugin-name
# Reinstall
grafana-cli plugins install plugin-nameAlways check the plugin's compatibility with the new Grafana version before upgrading. Check the release notes for deprecated or removed plugin APIs.
Grafana is slow or uses too much memory
- Increase the rendering timeout and reduce the number of loaded plugins.
- Check dashboard query performance — slow Prometheus or SQL queries make the UI appear sluggish.
- Enable caching for repeated queries in grafana.ini.
- For large deployments, consider moving the SQLite database to PostgreSQL or MySQL.
# Check Grafana process memory usage
Get-Process -Name "grafana*" | Select-Object Name, WorkingSet, CPUDashboards show "No data" after upgrade
- Test each data source in Connections → Data sources → Test.
- Check if variable syntax changed between versions (e.g. $variable vs ${variable}).
- Verify Prometheus / InfluxDB / Loki endpoints are still reachable.
- Look for deprecated PromQL functions in your dashboard queries.
Still stuck?
Check the official Grafana community forum or the GitHub issues list for your specific error message.