# OCPP Error Codes

A Salia charging station reports faults to the backend in the
`StatusNotification` message of OCPP 1.6J. The `errorCode` field carries the
standard OCPP code; for most faults the `vendorErrorCode` field names the
exact cause. This page lists every combination the station sends.

Applies to firmware 2.5.0 and later on all charging stations with the Salia
controller.

## How faults are reported

- **One fault at a time.** For each connector the station reports only the
  fault with the highest priority. The tables below are in priority order.
  A fault further down is reported with the next `StatusNotification`
  after the one above it is cleared.
- **Connectors.** Connector `1` is the charging point. Connector `0` stands
  for the whole station and reports `Faulted` for the station-wide faults
  marked *0 and 1* below and for `LocalListConflict`.
- **vendorId.** When a `vendorErrorCode` is set, the message also carries
  `vendorId`. The default is `com.in-tech.smartcharging`. The `info` field is
  not used.
- **Status.** Most faults set the connector to `Faulted`. The faults marked
  *current status* report the error code with the status the connector has
  at that moment, for example `Charging`, and do not stop the transaction.
- **Reconnect.** After the connection to the backend is (re)established the
  station sends a `StatusNotification` for connector 0 and connector 1, so a
  fault that is still present is reported. A fault that occurred and cleared
  while the station was offline is not reported.
- **Stopping a transaction.** Where a fault ends a running transaction, the
  station sends `StopTransaction` with `reason` = `Other`. The emergency
  shutdown is the exception: it uses `reason` = `EmergencyStop`.
- **Reset Hard** below means `Reset.req` from the backend (`Hard` or
  `Soft`; both restart the whole station), or switching the station off and
  on again on site.

## Fault list

### Contactor

| errorCode | vendorErrorCode | Connector | Meaning | Status | Effect on charging | Cleared | Recommended action |
| --- | --- | --- | --- | --- | --- | --- | --- |
| `PowerSwitchFailure` | – | 1 | The feedback of the power contactor does not match the switching command. | Faulted | A running transaction is stopped and the charging point is switched off. | By Reset Hard at the latest. | Reset Hard. If the fault comes back, especially under load, have a qualified electrician check the supply line, the N/PE connection and the contactor, and contact eCharge service. |

### Plug lock (socket variants only)

| errorCode | vendorErrorCode | Connector | Meaning | Status | Effect on charging | Cleared | Recommended action |
| --- | --- | --- | --- | --- | --- | --- | --- |
| `ConnectorLockFailure` | `PlugLockMotorCapNotCharged` | 1 | The energy store of the lock motor is not charged after the charging time. | Faulted | A running transaction is stopped. | By Reset Hard at the latest. | Reset Hard. If the fault comes back, contact eCharge service (plug lock hardware). |
| `ConnectorLockFailure` | `PlugLockMotorUnexpectedOpen` | 1 | The plug lock opened unexpectedly. The station drives the lock fully open. | Current status | The transaction is not stopped. | By Reset Hard at the latest. | Unplug and re-insert the cable, check the socket for foreign objects or damage, Reset Hard. If the fault comes back, contact eCharge service. |
| `ConnectorLockFailure` | `PlugLockMotorUnexpectedClose` | 1 | The plug lock closed unexpectedly. | Faulted | A running transaction is stopped. | By Reset Hard at the latest. | As above. |
| `ConnectorLockFailure` | `PlugLockCannotLock` | 1 | The lock does not reach the locked position, even after several attempts. | Faulted | A running transaction is stopped. | By Reset Hard at the latest. | Check that the plug is fully inserted, then as above. |
| `ConnectorLockFailure` | `PlugLockCannotUnlock` | 1 | The lock does not reach the unlocked position; the cable may not come out. | Faulted | A running transaction is stopped. | By Reset Hard at the latest. | Send `UnlockConnector` or Reset Hard. If the cable still cannot be removed, a qualified electrician releases it manually; contact eCharge service. |
| `ConnectorLockFailure` | `PlugLockMotorDriverFault` | 1 | The motor driver of the plug lock reports a fault. | Faulted | A running transaction is stopped. | By Reset Hard at the latest. | Reset Hard. If the fault comes back, contact eCharge service (plug lock hardware). |
| `ConnectorLockFailure` | `unknown` | 1 | A plug lock fault that is not classified further. | Faulted | A running transaction is stopped. | By Reset Hard at the latest. | As for `PlugLockMotorUnexpectedOpen`. |

### Energy meter

| errorCode | vendorErrorCode | Connector | Meaning | Status | Effect on charging | Cleared | Recommended action |
| --- | --- | --- | --- | --- | --- | --- | --- |
| `PowerMeterFailure` | `CommunicationError` | 1 | The energy meter does not answer, or was not found at start-up. | Faulted | Energy delivery stops and no new transaction can start. A running transaction stays open until the vehicle is unplugged. | Automatically, as soon as the meter answers again. | Reset Hard. If the fault stays, have a qualified electrician check the supply and the bus wiring of the meter; contact eCharge service. |
| `PowerMeterFailure` | `InternalError` | 1 | A meter value or signed meter value request was not answered within 11 seconds. | Faulted | A running transaction is stopped, possibly without a signed data set. | Reset Hard. | Reset Hard. If the fault comes back, contact eCharge service. |
| `PowerMeterFailure` | `IdleMeterError` | 1 | Calibration-law (Eichrecht) variants only: unexpected state change of the meter outside a transaction. | Faulted | A running transaction is stopped. | Reset Hard. | Reset Hard. If the fault comes back, contact eCharge service. |
| `PowerMeterFailure` | `ActiveMeterError` | 1 | Calibration-law (Eichrecht) variants only: unexpected state change of the meter during a transaction. | Faulted | A running transaction is stopped, possibly without a signed data set. | Reset Hard. | Reset Hard. If the fault comes back, contact eCharge service. |

### RFID reader

| errorCode | vendorErrorCode | Connector | Meaning | Status | Effect on charging | Cleared | Recommended action |
| --- | --- | --- | --- | --- | --- | --- | --- |
| `ReaderFailure` | – | 1 | The RFID reader does not answer (only when RFID is enabled). | Current status | Charging is not interrupted. Cards cannot be read; `RemoteStartTransaction` still works. | Automatically, as soon as the reader answers again. | Reset Hard. If the fault stays, contact eCharge service (RFID module). |

### Residual current monitoring

| errorCode | vendorErrorCode | Connector | Meaning | Status | Effect on charging | Cleared | Recommended action |
| --- | --- | --- | --- | --- | --- | --- | --- |
| `GroundFailure` | `RcdGroundFailure` | 1 | The residual current monitor detected a residual current. | Faulted | A running transaction is stopped. | By Reset Hard at the latest. | Unplug the vehicle and test with another vehicle. If the fault occurs with one vehicle only, have the vehicle and its cable checked. If it occurs with every vehicle, have a qualified electrician check the installation. |
| `GroundFailure` | `SpuriousRcdError` | 1 | The residual current monitor is in an unexpected state. | Faulted | A running transaction is stopped; the charging point stays blocked. | Reset Hard. | Reset Hard. If the fault comes back, contact eCharge service. |
| `GroundFailure` | `RcdTestError` | 1 | The periodic self-test of the residual current monitor failed. | Faulted | A running transaction is stopped; the charging point stays blocked. | Reset Hard. | Reset Hard. If the fault comes back, contact eCharge service (residual current module). |

### Other faults

| errorCode | vendorErrorCode | Connector | Meaning | Status | Effect on charging | Cleared | Recommended action |
| --- | --- | --- | --- | --- | --- | --- | --- |
| `OtherError` | `EmergencyShutdown` | 0 and 1 | The emergency shutdown input of the station is triggered (external shutdown). | Faulted | A running transaction is stopped with `reason` = `EmergencyStop`; the charging point is blocked. | Automatically, as soon as the input is released. | Find the cause of the external shutdown on site. The station returns to `Available` by itself afterwards. |
| `OtherError` | `RcdRecloserFailure` | 1 | Only with a configured auto-recloser: the recloser reports a fault. | Current status | Charging is not interrupted by OCPP. | Automatically, as soon as the recloser no longer reports a fault. | Have a qualified electrician check the recloser and the residual current device. |
| `OtherError` | `Persistence…` (see below) | 0 and 1 | Internal storage fault: the local transaction database of the station cannot be read or written. The code names the operation that failed. | Connector 0: Faulted. Connector 1: Faulted if the fault occurs during operation; if the storage cannot be opened at start-up, connector 1 keeps its normal status (e.g. `Available`). | The charging point is blocked; no new transaction can start. | Reset Hard. | Reset Hard. If the fault comes back after the restart, install the current firmware and contact eCharge service. |
| `OtherError` | `CpShortCircuit` | 1 | Short circuit on the control pilot line (cable or vehicle). | Faulted | A running transaction is stopped. | Automatically, as soon as the short circuit is gone. | Unplug the vehicle and check the cable and the vehicle plug for damage. If the fault occurs without a vehicle, contact eCharge service. |
| `OtherError` | `ProximityNoCable` | 1 | Socket variants only: no charging cable is detected any more during charging. | Current status, sent once | Energy delivery stops; the transaction stays open until the vehicle is unplugged. | No clearing notification; the next `StatusNotification` (status change) carries `NoError`. | Check the charging cable or use another one. |
| `OtherError` | `ProximityInvalid` | 1 | Socket variants only: invalid coding resistor in the charging cable. | Current status, sent once | Energy delivery stops; the transaction stays open until the vehicle is unplugged. | No clearing notification; the next `StatusNotification` (status change) carries `NoError`. | Use a cable that complies with IEC 61851. |
| `OtherError` | `ProximityChanged` | 1 | Socket variants only: the coding resistor of the cable changed during charging. | Current status, sent once | Charging continues. | No clearing notification; the next `StatusNotification` (status change) carries `NoError`. | Check the cable for damage or a loose contact, or replace it. |
| `LocalListConflict` | – | 0 | The backend's answer (`idTagInfo`) contradicts the local authorization list of the station. | Faulted (connector 0 only) | No effect on charging. | When a `SendLocalList` is accepted. | Send the local authorization list again with `SendLocalList`, `updateType` = `Full`. |

The storage fault codes are `PersistenceOpenFailed`,
`PersistencePrepareFailed`, `PersistenceFinalizeFailed`,
`PersistenceCountError`, `PersistenceClearError`, `PersistenceUpdateFailed`,
`PersistenceDropFailed`, `PersistenceTransactionFailed`,
`PersistenceCreateFailed`, `PersistenceInsertFailed`,
`PersistenceDeleteFailed`, `PersistenceUnlinkDenied`,
`PersistenceReadOnly`, `PersistenceInvalidType`,
`PersistenceTooManyTransactions` and `PersistenceNoInsertRowId`. They all have the same meaning and the same
recommended action.

Proximity faults are sent only while the station is connected to the
backend, at most once every 10 seconds, and are not queued while the station
is offline.

## Codes the station does not send

The following OCPP 1.6 error codes are not used: `EVCommunicationError`,
`HighTemperature`, `InternalError`, `OverCurrentFailure`,
`OverVoltage`, `ResetFailure`, `UnderVoltage`, `WeakSignal`.
