Connection Health

Monitoring partner connectivity via HubClientInfo and health probes.

ChargeIndia Hub tracks partner connection status and exposes it through the HubClientInfo module.

HubClientInfo statuses

StatusMeaning
CONNECTEDPartner is reachable and recently active
OFFLINEPartner failed health checks (typically > 1 minute)
PLANNEDPartner registered but not yet active
SUSPENDEDPartner suspended by account team

Query statuses:

GET /ocpi/2.2.1/hubclientinfo
Authorization: Token {your-token}

Or for a specific party:

GET /ocpi/2.2.1/hubclientinfo/{country_code}/{party_id}

Health probes

The Hub worker periodically calls GET /ocpi/versions on each partner's registered URL. Ensure your versions endpoint:

  • Responds within timeout limits
  • Returns OCPI 2.2.1 in the version list
  • Is reachable over HTTPS

If probes fail consistently, your status transitions to OFFLINE. Hub still forwards authorize, commands, and async pushes while a party is OFFLINE.

Impact on roaming

ConditionEffect
CPO or eMSP OFFLINEHealth status only. Hub still forwards authorize, commands, and async pushes.
Open circuitAuthorize: HTTP 502, allowed: UNKNOWN, class message (Hub does not retry). Commands: HTTP 502, "CPO command forward unavailable" (command marked failed; not left pending). Async forwards to that party are deferred.
Either SUSPENDEDAll authenticated Hub requests return 401
CPO not in HubClientInfo allow-listeMSP receiver may reject inbound location/tariff/session pushes with invalid party errors

Repeated retryable outbound failures open a short per-party circuit (~5 failures / 60s, open ~60s). Successful health /versions closes it. Details: Session Lifecycle — Failure scenarios.

Monitoring recommendations

  • Poll HubClientInfo for your roaming partners before initiating sessions
  • Use HubClientInfo to build the set of valid CPO party keys for inbound receiver validation (intersect with routing rules)
  • Alert on your own OFFLINE status
  • Log and investigate failed health probes on your platform
  • On authorize, branch on HTTP 504 vs 502 when allowed is UNKNOWN