Troubleshooting
Start with the smallest path first:- Driver process health.
- Driver-to-printer TCP reachability.
- Queue state.
- Console printer config.
- HTTPS or browser trust issues.
Driver Not Reachable
Check:- Confirm
plato-printer.exeis running. - Confirm
config.jsonis valid JSON. - Confirm
server.portis not already used. - Check the startup logs for
Port already in use.
- Open Windows Firewall for
server.port. - Use the driver’s network address from the startup banner.
- Confirm the POS device is on the same network or allowed VLAN.
Printer Offline
Call:| Last Error | Meaning | Fix |
|---|---|---|
Connection Refused | Host is reachable but port is closed. | Check printer port and raw TCP setting. |
Connection Timeout | Cannot reach printer IP/port. | Check IP, network, VLAN, firewall, printer power. |
Printer open timed out after 2000ms | TCP connect did not complete. | Check printer network path. |
Printer write timed out after 6000ms | Socket opened but did not flush write. | Reboot printer, check buffer, network, or printer firmware. |
TCP connection closed | Printer closed socket unexpectedly. | Recheck printer raw port and job payload size. |
Jobs Stuck
Inspect queues:waiting: jobs ready but not active.active: currently printing.delayed: future scheduled or retry-delayed jobs.failed: failed jobs retained by BullMQ.totalPending: waiting plus delayed across all printers.isProcessing: at least one active job exists.
Print Request Accepted But Nothing Prints
If/print returns { "ok": true, "queued": true }, the driver accepted the job.
Next checks:
GET /queue-status.POST /statuswithvalidate: true.- Printer IP and port in Console config.
- Printer model supports ESC/POS raster over TCP.
- Printer has paper and is not paused.
Missing Printer Address
The current driver requires both:HTTPS Fails
Check:- Install the CA certificate on the POS device.
- Make
plato-printer.localresolve to the driver machine. - Open port
443. - Confirm
assets/certsexists. - Confirm Caddy started in logs.
Mesh Fails
Check:Redis Fails To Start
Embedded Redis startup can fail if:- The configured Redis binary version is missing or corrupted.
- The configured Redis port is already in use.
- Windows blocks the downloaded binary.
- The detected Redis version does not match
redis.version.
- Run the bundle script to prepare
redis-binaries. - Change
redis.port. - Delete the bad
redis-binaries/<version>folder and rebuild. - Use
redis.mode: "external"with a known-good Redis server.
Safe Reset
For a local reset during development:dist, output, logs, plato-printer.zip, and dump.rdb.
In production, do not delete dump.rdb unless you intentionally want to clear persisted queues and known printer registry state.