Troubleshooting WebSocket connections
Chargeflux.io opens OCPP WebSocket connections from its hosted runtime, not directly from your browser tab. Browser WebSocket limitations such as mixed content blocking, immutableOrigin headers and client-certificate prompts no longer apply. This guide lists the CSMS-side causes that can still fail and what to try for each.
What the simulator can and cannot tell you
A failed WebSocket handshake may still return only a generic error from the hosted runtime or CSMS. Chargeflux.io is deliberately honest about this: it presents a checklist of likely causes rather than guessing a single answer.
Common causes and fixes
Incorrect URL
Check for typos, a missing path segment, or a stray space. The endpoint must start with wss:// and, in most CSMS conventions, include the station identity as the final path segment, for example wss://csms.example.com/ocpp/CF-DEMO-A7K2.
Station not registered
Many CSMS products only accept stations that are already registered. Add the station identity you are using to your CSMS, or change the identity in the simulator to one the CSMS knows. See getting started for where to set it.
Authentication mismatch
Confirm the CSMS accepts the authentication method configured for the station. The free simulator focuses on station identity and URL-based setup. Private network access and source-IP allowlisting are tracked on the roadmap; CI automation is available through the Pro API and MCP server.
TLS certificate invalid
The hosted runtime will reject a wss:// connection if the server’s certificate is expired, self-signed or does not match the hostname. Open the same host over https:// to check the certificate chain.
Subprotocol rejected
The server must accept the ocpp1.6 subprotocol during the handshake. If it expects a different subprotocol string, the connection will not complete.
CSMS unavailable or network restriction
The endpoint may be down, private, firewalled or restricted to a source IP that does not include Chargeflux's hosted runtime. Confirm the endpoint is reachable from the public internet or use a public test endpoint.
Still stuck?
Use the simulator’s copyable diagnostic summary and send it with your feedback. Remember to remove any credentials or private OCPP data first.
When the WebSocket is healthy again, continue with a full Core path on the OCPP 1.6 simulator (BootNotification → session → MeterValues) or the matching OCPP 2.0.1 simulator if you are testing that stack.
Last reviewed August 2026 · Chargeflux.io