Skip to content
Docs Try Aspire

Aspire troubleshooting guide

Having issues getting started with Aspire? This page covers solutions to the most common problems developers encounter.

Symptoms: aspire run hangs or shows “waiting for container runtime” messages.

Solution: Start Docker Desktop (or Podman) before running aspire run. Check your system tray to confirm Docker is running with a green status indicator.

Symptoms: Error message like “Address already in use” or “Port 5000 is already bound.”

Solution:

  • Stop any other applications using the same ports
  • If you have another Aspire app running, stop it first with ⌘+C Control + C Control + C
Terminal window
lsof -i :5000
# Then kill the process:
kill -9 <pid>

Service shows “Unhealthy” in dashboard

Section titled “Service shows “Unhealthy” in dashboard”

Symptoms: A service has a red status or shows “Unhealthy” in the Aspire dashboard.

Solution:

  1. Click on the service name in the dashboard to view its logs
  2. Look for startup errors or exceptions
  3. Verify the health check endpoint exists (e.g., /health returns a 200 OK)
  4. Check that all dependencies started successfully

Symptoms: Your frontend can’t connect to the API, showing connection refused errors.

Solution: Make sure you’re using WaitFor() in your AppHost:

AppHost.cs
builder.AddProject<Projects.WebFrontend>("frontend")
.WithReference(apiService)
.WaitFor(apiService); // Add this line!

Symptoms: Your service can’t find connection strings or configuration that should be injected.

Solution: Verify you’re using WithReference() to connect resources.

Example: Connecting a database to your service

Section titled “Example: Connecting a database to your service”

In your AppHost:

AppHost.cs
var db = builder.AddPostgres("db");
var api = builder.AddProject<Projects.Api>("api")
.WithReference(db); // This injects the connection string

In your service code, access the connection string via configuration:

Program.cs
var connectionString = builder.Configuration.GetConnectionString("db");

The connection string is injected as an environment variable named ConnectionStrings__db.

Symptoms: Error messages about failing to pull container images, or “image not found” errors.

Solution:

  • Check your internet connection
  • Verify Docker Hub or your container registry is accessible
  • If using a corporate network, check proxy settings in Docker Desktop
Terminal window
# Try pulling the image manually
docker pull redis:latest
# If behind a proxy, configure Docker Desktop:
# Settings > Resources > Proxies > Manual proxy configuration

Symptoms: The Aspire dashboard URL doesn’t respond or shows a blank page.

Solution:

  1. Check the console output for the correct dashboard URL (it may use a different port)
  2. Ensure no browser extensions are blocking the page
  3. Try a different browser or incognito mode
  4. Check if antivirus or firewall is blocking the connection

Symptoms: Services can’t find each other by name (e.g., http://apiservice doesn’t resolve).

Solution: Ensure you’re using the service name exactly as defined in your AppHost.

AppHost.cs
// In AppHost
var api = builder.AddProject<Projects.Api>("apiservice"); // Name is "apiservice"
Program.cs
// In your consuming service, use exactly this name
var client = new HttpClient { BaseAddress = new Uri("http://apiservice") };

Also verify:

  • Both services have AddServiceDefaults() called
  • The consuming service has .WithReference(api) in the AppHost

For a deeper understanding of how service discovery works in Aspire, see Service discovery.