Repository navigation
Troubleshooting
Use this page when the setup steps are correct on paper but the app still does not start or behave correctly.
The Egroo.Server process exits on startup or throws a configuration exception.
- Make sure
ConnectionStrings:DefaultConnectionexists. - Make sure
Secrets:Jwtexists. - Make sure
Encryption:KeyandEncryption:IVexist. - Confirm the encryption lengths are exact:
- key: 32 characters
- IV: 16 characters
Startup fails with PostgreSQL connection or migration errors.
- Confirm PostgreSQL is running.
- Confirm the database, user, password, and port in
appsettings.Development.jsonare correct. - Test the connection with a PostgreSQL client using the same credentials.
- Confirm the target database already exists.
Example connection string:
{
"ConnectionStrings": {
"DefaultConnection": "Server=localhost;Port=5432;User Id=egroo_local_user;Password=change-me;Database=egroo_local;"
}
}The page opens, but sign-in, channel actions, or real-time chat fail.
- Confirm the API is running on
http://localhost:5175. - Confirm the UI is using the expected API base URL from
src/Egroo.UI/Constants/Source.cs. - Open browser developer tools and check failed requests and WebSocket errors.
In debug builds, the client should already target http://localhost:5175/.
Messages arrive, but the UI shows an error such as being unable to decrypt them on the current device.
- Confirm the client still has the correct private key in local storage.
- Confirm the signed-in user's published
EncryptionKeyIdstill matches the local device key. - If browser storage was cleared, regenerate the encryption key from the app settings.
- If you signed in on a new device, make sure that device has generated and published its own key.
http://localhost:5175/swagger returns nothing.
- Confirm the API is running in development.
- Confirm the server actually started and is listening on
http://localhost:5175. - Check the server console for configuration or migration failures.
Swagger is enabled only in development.
The app loads but the real-time connection never stabilizes.
- Confirm the browser or reverse proxy allows WebSocket connections.
- Confirm
/chathubis reachable through the same API base URL the UI uses. - If you are behind a reverse proxy, verify it forwards
UpgradeandConnectionheaders.
Important detail:
- Egroo uses WebSockets-only transport for the hub.
- There is no long-polling or server-sent events fallback configured for the supported path.
The root compose file starts containers incorrectly or fails immediately.
- Confirm you are using the right compose file for your goal.
- For
docker-compose-egroo.yml, confirm the external Docker networkinternalexists. - Confirm PostgreSQL is provided separately when using the root compose file.
- Confirm runtime configuration is injected into the containers.
The root compose file is not a complete first-run developer stack.
The web app starts, but it tries to connect to https://api.egroo.org/ instead of your server.
Update the release value in src/Egroo.UI/Constants/Source.cs before building the web app for your environment.
You can run the app, but test runs fail.
- Run
dotnet build src/Egroo.slnx --configuration Debugfirst. - Run
dotnet test src/Egroo.Server.Test/Egroo.Server.Test.csproj --verbosity normal. - If package restore is broken, clear NuGet caches and restore again.
dotnet nuget locals all --clear
dotnet restore src/Egroo.slnxWhen reporting an issue, include:
- whether you are using manual setup or Docker
- the exact command you ran
- the startup error message
- whether the API, web app, or database is the failing piece