checkId: check.servicegraph.sibling-reachability plugin: stellaops.doctor.servicegraph severity: fail tags: [servicegraph, gateway, router, services, connectivity]
Sibling Service Reachability
What It Checks
This check resolves the platform router/gateway host from Router:Gateways:0:Host (compose Router__Gateways__0__Host) and probes first-party sibling service health endpoints through the documented route roots. It covers Authority, Concelier, Scanner, Policy, Evidence Locker, Attestor, JobEngine, Notify, Release Orchestrator, VexLens, and VexHub.
| Condition | Result |
|---|---|
| No router/gateway host configured | skip |
| Every sibling route returns HTTP 2xx | pass |
| Any sibling route returns non-2xx or cannot be reached | fail |
The evidence includes GatewayBaseUrl, SiblingCount, HealthyCount, FailedCount, UnhealthyServices, and per-service Url, Status, and StatusCode fields.
Why It Matters
The platform deployment reaches sibling services through the router/gateway instead of direct StellaOps:*Url settings. A direct-URL-only probe can skip on the real deployment while the catalog still needs proof that first-party service routes are reachable. This check closes that gap without publishing messages or mutating service state.
Common Causes
- A first-party service is down, still starting, or failing its own health endpoint.
- The router/gateway route table is missing or stale for one service.
- A documented route root no longer maps to the service health endpoint.
Router__Gateways__0__Hostpoints at the wrong gateway host or port.
How to Fix
Docker Compose
# Identify the failed service route from Doctor evidence first:
stella doctor run --check check.servicegraph.sibling-reachability
# Inspect only the named failed service and the gateway; do not restart the full stack.
docker compose -f devops/compose/docker-compose.stella-ops.yml ps <failed-service>
docker compose -f devops/compose/docker-compose.stella-ops.yml logs --tail 100 <failed-service>
docker compose -f devops/compose/docker-compose.stella-ops.yml ps router-gateway
Bare Metal / systemd
# Probe the failed evidence URL directly from the Doctor host.
curl -fsS http://<gateway-host>:<gateway-port>/<failed-route>
# Check only the named failed service and the router/gateway unit.
systemctl status stellaops-<failed-service>
systemctl status stellaops-router-gateway
Kubernetes / Helm
# Check only the named failed service and gateway pods.
kubectl get pods -n stellaops -l app=<failed-service>
kubectl logs -n stellaops -l app=<failed-service> --tail=100
kubectl get pods -n stellaops -l app=router-gateway
Verification
stella doctor run --check check.servicegraph.sibling-reachability
Related Checks
check.servicegraph.gateway-router- verifies the router/gateway readiness endpoint and metadata replay state.check.servicegraph.endpoints- probes direct per-service URLs when standalone deployments configure them.check.router.messaging.transport- verifies the router messaging backbone.
