Troubleshooting
The database or the broker never becomes healthy
Symptom: the dashboard waits forever on postgres or rabbitmq, and their logs say
password authentication failed or invalid credentials.
Cause: the AppHost runs PostgreSQL, RabbitMQ, Redis and MailPit as persistent
containers, kept between runs on named volumes. A database takes its password from
the volume it was created on, not from Parameters:sql-password. A volume created
before the secrets were set — or before sql-password changed — keeps the old
password, and Aspire's health check retries it without saying why.
Fix: set the old password back in the user secrets, or start from nothing. This deletes the development data; the seed writes the sample data back:
# The AppHost's persistent containers, then their volumes
docker rm -f $(docker ps -aq --filter label=com.microsoft.developer.usvc-dev.persistent=true)
docker volume rm $(docker volume ls -q --filter name=blouppy.aspire.apphost)
docker volume rm mailpit-data # the caught e-mails, if you want them gone too
HTTPS certificate errors
Symptoms:The remote certificate is invalid because of errors in the certificate chain: UntrustedRoot, the gateway answering 502, or Angular serving a certificate
that is not the trusted one.
Cause: more than one development certificate is in play. The Angular apps export
the ASP.NET Core certificate to PEM files (aspnetcore-https.js); if those files come
from an older certificate, the services do not trust each other.
Fix: reduce it to one certificate.
Delete the exported files:
blouppy.pemandblouppy.keyin~/.aspnet/https/(macOS, Linux) or%APPDATA%\ASP.NET\https\(Windows).Reset the certificate:
dotnet dev-certs https --clean dotnet dev-certs https --trust dotnet dev-certs https --check # exactly one valid certificateOn Linux, check that
SSL_CERT_DIRincludes~/.aspnet/dev-certs/trust(see Prerequisites).Start the AppHost again.
A port is already in use
Something else holds 5071, 59808, 8025… — often the containers of an earlier run;
docker ps names them. The end-to-end suite uses the same ports with containers of its
own, so stop the development containers before running it.
toomanyrequests while pulling an image
Docker Hub's anonymous limit. Run docker login, or configure a registry mirror (see
Prerequisites).
npm ci reports an entry missing from the lock file
Your npm is older than the one that wrote the lockfile: npm install --global npm@12.