checkId: check.core.config.loaded plugin: stellaops.doctor.core severity: fail tags: [quick, configuration, startup]
Configuration Loaded
Doctor check
check.core.config.loaded— for operators confirming that a Stella Ops service actually loaded its configuration before it tries to reach databases, brokers, and upstream services.
What It Checks
Verifies that the application configuration system is properly loaded and accessible. The check calls IConfiguration.GetChildren() and counts the number of root configuration sections. It collects:
- SectionCount: total number of top-level configuration sections found.
- RootSections: names of up to 10 root sections (e.g.,
Logging,ConnectionStrings,Authentication). - Environment: the current hosting environment name.
If zero sections are found, the check fails. If the configuration object throws an exception when accessed, the check also fails with the exception details.
Why It Matters
Configuration is the foundation of every Stella Ops service. Without a loaded configuration, connection strings, authentication settings, feature flags, and service endpoints are all missing. The service will fail to connect to databases, message brokers, and upstream services. This check catches the scenario where config files are missing from the container image, environment variables are not injected, or a configuration provider failed to initialize.
Common Causes
- Configuration file (
appsettings.json) is missing or empty - Configuration provider not registered in
Program.cs - Environment variables not set in the deployment
- Config file not included in the Docker image build
- Volume mount overwriting the config directory with an empty directory
How to Fix
Docker Compose
Verify the configuration file exists inside the container:
docker compose exec <service> ls -la /app/appsettings.json
If missing, check your Dockerfile to ensure the file is copied. Alternatively, mount it as a volume:
volumes:
- ./config/appsettings.json:/app/appsettings.json:ro
Check that environment variables are being injected:
docker compose exec <service> printenv | grep -i stella
Bare Metal / systemd
Verify the config file exists in the application directory:
ls -la /opt/stellaops/appsettings.json
cat /opt/stellaops/appsettings.json | head -5
Check environment variables:
printenv | grep -i stella
Kubernetes / Helm
Check that the ConfigMap is mounted:
kubectl exec -it <pod> -- cat /app/appsettings.json
kubectl exec -it <pod> -- printenv | grep -i STELLA
Verify the ConfigMap exists:
kubectl get configmap stellaops-config -o yaml
Verification
stella doctor run --check check.core.config.loaded
Related Checks
check.core.config.required— verifies specific required settings are presentcheck.core.env.variables— verifies environment variables are set
See the Doctor reference for the full check catalog, CLI usage, and export bundles.
