Skip to content

[BUG] Web UI: Authorize fails with "Request PDU is invalid" on OCPP 2.0.1 stations #1817

@jerome-benoit

Description

@jerome-benoit

Description

When using the Web UI to authorize an RFID tag on an OCPP 2.0.1 charging station, the operation fails with AUTHORIZE FAILED Request PDU is invalid. The authorize PDU sent by the simulator does not conform to the OCPP 2.0.1 JSON schema expected by the CSMS.

This affects both the modern skin (Authorize dialog) and the classic skin (Start Transaction form with "Authorize RFID tag first" checkbox enabled).

Version

4.5.1

Node.js version

v24.15.0

System

OS: macOS 26.4.1
CPU: (12) arm64 Apple M2 Pro
Memory: 1.46 GB / 32.00 GB
Shell: 5.9 - /bin/zsh

Expected result

The authorize request should be sent with the correct OCPP 2.0.1 AuthorizeRequest payload format ({ idToken: { idToken: "...", type: "..." } }) and the CSMS should respond with Accepted or another valid status.

Actual result

The UI displays: AUTHORIZE FAILED Request PDU is invalid

The authorize request PDU does not pass OCPP 2.0.1 JSON schema validation on the mock CSMS.

Steps to reproduce

  1. Start the OCPP 2.0.1 mock server: cd tests/ocpp-server && poetry run python server.py --port 9000
  2. Configure the simulator with keba-ocpp2.station-template.json (OCPP 2.0.1) pointing to ws://127.0.0.1:9000/OCPP201
  3. Start the simulator with uiServer.enabled: true
  4. Open the Web UI
  5. On any OCPP 2.0.1 station, click "Authorize" (modern skin) or "Start Transaction" with authorize checkbox enabled (classic skin)
  6. Enter any RFID tag value (e.g., test_token) and submit

Attachments

Discovered during E2E browser testing of PR #1815. The issue is pre-existing and not introduced by that PR — it relates to how the simulator formats the Authorize OCPP command for 2.0.1 stations when triggered via the UI protocol.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions