Troubleshooting

Common integration issues, symptoms, and fixes for ChargeIndia Hub.

Symptom index for integrators. Full multi-party contracts: Session Lifecycle — Failure scenarios.

Authentication

SymptomHub responseFix
2000 + HTTP 401 on all Hub requestsOCPI 2000Re-check credentials; see Token Rotation
HTTP 401 with status_code: 2000Suspended partyContact your ChargeIndia account team
Auth works on some routes only—Send Authorization: Token {Base64(UTF-8(token))} per Authentication
HTTP 401, from-header mismatchOCPI 2000OCPI-from-* must match your authenticated party — Message routing headers

Routing

SymptomHub responseLikely causeFix
Empty location or tariff listEmpty dataNo routing rulesEnable routing
Authorize blocked for a CPOHTTP 200, allowed: NOT_ALLOWEDNot in routing matrix / unknown CPOEnable routing — not "Not routed"
Command blocked for routingHTTP 403, "Not routed"No eMSP↔CPO ruleEnable routing
Command reaches wrong party—Wrong CPO {cc}/{pid}Use owning CPO identifiers
HTTP 400, to-header mismatch"OCPI-to headers do not match resolved destination"OCPI-to-* disagrees with location_id / path / cdr_tokenAlign headers with body ownership or omit OCPI-to-* for Open Routing

Sessions and CDRs

SymptomHub responseLikely causeFix
Session not received by eMSPCPO got 1000; no forwardMissing/wrong cdr_tokenCPO re-pushes with eMSP identity — Failure scenarios
Session not delivered; cdr_token is Hub (CIH)CPO got 1000; no (or mis-targeted) forwardcdr_token is Hub; COMPLIANT/expired grace or no matching START_SESSION for COMPATIBILITY rewriteCPO re-PUT/PATCH with eMSP identity from START_SESSION token — Failure scenarios, Hub Receiver Identity (CPO)
CDR not received by eMSPSame as sessionBad cdr_token or receiver URLFix CPO fields + eMSP receiver
Async delivery delayedSilent to CPOeMSP down / transientHub retries timeout/unavailable; idempotent receivers — Async Delivery
Wrong party GET sessionHTTP 404, "Not found"Outside cdr_token / ownership scopeOwnership

Commands

SymptomHub responseHub retry?Fix
CPO timed outHTTP 502, "CPO command forward timed out"NoCheck CPO; eMSP may re-issue
CPO unavailable / circuitHTTP 502, "CPO command forward unavailable"NoConnection Health; re-issue later
Command not routedHTTP 403, "Not routed"NoEnable routing
Unknown location / sessionHTTP 404, "Location not found"NoFix IDs; ensure CPO published location/session
Command REJECTEDdata.result: REJECTEDNoFix eligibility / EVSE state
ACCEPTED but no sessionImmediate ack onlyNoHonor data.timeout; CPO must callback — Failure scenarios
Callback 401OCPI 2000NoCPO must authenticate and own the command — CPO Commands
No async command resultPossible Hub 502 on callbackNoKeep eMSP response_url healthy; CPO may retry callback

Async delivery and receivers

SymptomLikely causeFix
HTTP 400: invalid path party on eMSP receiverPath must be owning CPO, not eMSP or HubHub Receiver Identity (eMSP)
Catalog updates missingpublish: false or routing gapCheck publish flag + routing
Duplicate records after retryReceiver not idempotentDedupe on resource IDs

Rate limits

SymptomHub responseFix
Rate limitedstatus_code: 2901 or HTTP 429Exponential backoff — Rate Limits & Errors

Connection health

SymptomHub responseHub retry?Fix
Authorize timeoutHTTP 504, allowed: UNKNOWN, "CPO authorize timeout"NoPoll HubClientInfo; eMSP may retry
Authorize unavailableHTTP 502, allowed: UNKNOWN + status_messageNoRestore CPO / wait for circuit close
Partner missing from HubClientInfo——Finish Onboarding + routing

What to send support

Include:

  • X-Request-ID and X-Correlation-ID
  • Timestamp (UTC), endpoint, HTTP method, party identity
  • Request/response bodies with tokens redacted (include HTTP status + status_message)

See Support & Security.