OCPP MESSAGE · UPDATED 11 AUG 2026

Reset and availability: taking a charger out of service

Two commands that take a charger away from drivers. One restarts it, one disables it, and both have a failure mode where the unit does not come back — which is why the difference between them matters.

PART OF THE OCPP COMPLETE GUIDE · 14 MESSAGE GUIDES

IN ONE PARAGRAPH

Reset restarts a charge point, soft or hard. ChangeAvailability takes a connector or a whole unit out of service, either immediately or once the current session ends. Reset is the blunter instrument and carries real risk; ChangeAvailability is what you should reach for far more often.

Reset

[2, "19223250", "Reset", { "type": "Soft" }]

[3, "19223250", { "status": "Accepted" }]
TypeDoesUse when
SoftRestarts the OCPP application; ongoing transactions are stopped gracefully firstThe stack is wedged but the hardware is fine — the default choice
HardFull power-cycle equivalent; no graceful shutdownSoft failed, or the unit is unresponsive
Always try soft first. A hard reset can interrupt a transaction mid-write and lose queued offline data — the transactions a charger was holding to replay may not survive. On a unit that has been offline for hours, a hard reset can destroy a day's unbilled revenue.

Accepted means the charger will restart, not that it restarted. Confirmation is the BootNotification that follows when it comes back up. A charger that accepts a reset and never sends BootNotification has not rebooted — it has died, and that needs escalation rather than a second reset.

ChangeAvailability

[2, "19223251", "ChangeAvailability", {
  "connectorId": 1,
  "type": "Inoperative"
}]

[3, "19223251", { "status": "Scheduled" }]
ResponseMeans
AcceptedApplied now — the connector was idle
ScheduledWill apply when the current transaction ends
RejectedCannot comply

Scheduled is the response that makes this command safe. Rather than cutting off a driver mid-charge, the charger honours the current session and applies the change afterwards. It is why ChangeAvailability should be your default tool for planned maintenance and Reset should not.

The trade-off is that a Scheduled change is not applied yet. Track pending availability changes and reconcile against StatusNotification, or your maintenance window opens with chargers still serving drivers.

connectorId 0

As in StatusNotification, connectorId: 0 addresses the whole charge point. Sending Inoperative to connector 0 disables every connector on the unit. This is what you want for cabinet-level maintenance and emphatically not what you want if you meant to disable one faulty socket.

Choosing between them

SituationUse
Planned maintenance windowChangeAvailabilityInoperative, then back to Operative
One faulty connector, unit otherwise fineChangeAvailability on that connector only
OCPP stack unresponsive but hardware healthyResetSoft
Charger completely unresponsiveResetHard, accepting the data risk
Safety fault such as GroundFailureChangeAvailability immediately, then a site visit — never just a reset
DecommissioningChangeAvailability, then remove from OCPI Locations

The safety row is worth stating plainly: resetting a charger reporting an earth fault clears the error state without fixing the fault. The unit comes back reporting NoError and resumes serving drivers on faulty hardware. Take it out of service and send someone.

Propagating the state outward

A charger you have disabled must stop appearing as available to everyone downstream:

  • Your own app — immediately.
  • Roaming partners via OCPI Locations — push INOPERATIVE, do not wait for their next pull.
  • Open networks — the catalogue you serve to Beckn search must reflect it.

A disabled charger still advertised as available is the same driver-facing failure as a broken one, and it is entirely self-inflicted.

Production lessons

  • Soft before hard, always. Hard reset risks queued offline transactions.
  • Confirm a reset via BootNotification. Accepted is not evidence of a restart.
  • Prefer ChangeAvailability for anything planned. Scheduled protects the driver mid-charge.
  • Track pending Scheduled changes and reconcile before the maintenance window opens.
  • Never reset a charger reporting a safety fault. Disable it and dispatch an engineer.
  • Be deliberate about connectorId 0 — it disables the entire unit.
  • Propagate unavailability to every downstream channel immediately.
  • Rate-limit resets per charger. Repeated resets on one unit indicate a fault that resetting will not fix, and a boot loop makes it worse.

Frequently asked questions

What is the difference between a soft and hard OCPP reset?

A soft reset restarts the OCPP application and stops ongoing transactions gracefully first. A hard reset is equivalent to a power cycle with no graceful shutdown, which risks losing queued offline transaction data. Always try soft first.

Does an Accepted response to OCPP Reset mean the charger restarted?

No, it means the charger will attempt to restart. Confirmation is the BootNotification that arrives when it comes back up. A charger that accepts a reset and never sends BootNotification has died and needs escalation rather than another reset.

What does a Scheduled response to ChangeAvailability mean?

The change will be applied when the current transaction ends, rather than cutting off a driver mid-charge. This makes ChangeAvailability the safe default for planned maintenance, but it also means the change is not yet in effect and pending changes must be tracked.

Should you reset a charger reporting a ground fault?

No. Resetting clears the error state without fixing the fault, so the unit returns reporting NoError and resumes serving drivers on faulty hardware. Take it out of service with ChangeAvailability and send an engineer.