POS Print Service
Print Dashboard
API
OnlineWorkers
5Active printers
7Printer errors
0Pending
0Failed
0Branch Printers
7 active
| Branch | Type | State | Address | Last checked | Error | Status |
|---|---|---|---|---|---|---|
| MIL | delivery | up | milahopf.atadragon.com:9141 | Jul 22, 2026, 4:24 PM | - | |
| MIL | dine-in | up | milahopf.atadragon.com:9143 | Jul 22, 2026, 4:24 PM | - | |
| MTL | delivery | up | dragonmtl.dyndns.org:5011 | Jul 22, 2026, 4:24 PM | - | |
| RAJ | delivery | up | dragonraj.dyndns.org:5201 | Jul 22, 2026, 4:24 PM | - | |
| RAJ | dine-in | up | dragonraj.dyndns.org:5202 | Jul 22, 2026, 4:24 PM | - | |
| WAT | delivery | up | dragonwat.dyndns.org:5301 | Jul 22, 2026, 4:24 PM | - | |
| WAT | dine-in | up | dragonwat.dyndns.org:5302 | Jul 22, 2026, 4:24 PM | - |
Settings
production
TimezoneAsia/Colombo
Worker typesdelivery, dine-in
Health check30 sec
Status requiredNo
Discord alertsOn
Failed Prints
0 rows
| ID | Order | Branch | Type | Status | Attempts | Created | Retry |
|---|---|---|---|---|---|---|---|
| No rows | |||||||
24h Totals
0 jobs
failed0
pending0
printing0
printed0
cancelled0
Recent Jobs
0 rows
| ID | Order | Branch | Type | Status | Attempts | Created |
|---|---|---|---|---|---|---|
| No rows | ||||||
Print Logs
/app/logs/pos-print-service.log
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/pymysql/connections.py", line 825, in _read_query_result
result.read()
File "/usr/local/lib/python3.12/site-packages/pymysql/connections.py", line 1199, in read
first_packet = self.connection._read_packet()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/pymysql/connections.py", line 775, in _read_packet
packet.raise_for_error()
File "/usr/local/lib/python3.12/site-packages/pymysql/protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "/usr/local/lib/python3.12/site-packages/pymysql/err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
pymysql.err.ProgrammingError: (1146, "Table 'RestaurantMaster.print_jobs' doesn't exist")
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/app/app/worker.py", line 402, in print_worker_loop
ids = await asyncio.to_thread(
^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/asyncio/threads.py", line 25, in to_thread
return await loop.run_in_executor(None, func_call)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/concurrent/futures/thread.py", line 59, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/app/app/worker.py", line 52, in claim_jobs
rows = db.execute(
^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2362, in execute
return self._execute_internal(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/orm/session.py", line 2256, in _execute_internal
result = conn.execute(
^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1418, in execute
return meth(
^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/sql/elements.py", line 515, in _execute_on_connection
return connection._execute_clauseelement(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1640, in _execute_clauseelement
ret = self._execute_context(
^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
return self._exec_single_context(
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
self._handle_dbapi_exception(
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/base.py", line 1967, in _exec_single_context
self.dialect.do_execute(
File "/usr/local/lib/python3.12/site-packages/sqlalchemy/engine/default.py", line 941, in do_execute
cursor.execute(statement, parameters)
File "/usr/local/lib/python3.12/site-packages/pymysql/cursors.py", line 153, in execute
result = self._query(query)
^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/pymysql/cursors.py", line 322, in _query
conn.query(q)
File "/usr/local/lib/python3.12/site-packages/pymysql/connections.py", line 563, in query
self._affected_rows = self._read_query_result(unbuffered=unbuffered)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/pymysql/connections.py", line 825, in _read_query_result
result.read()
File "/usr/local/lib/python3.12/site-packages/pymysql/connections.py", line 1199, in read
first_packet = self.connection._read_packet()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/pymysql/connections.py", line 775, in _read_packet
packet.raise_for_error()
File "/usr/local/lib/python3.12/site-packages/pymysql/protocol.py", line 219, in raise_for_error
err.raise_mysql_exception(self._data)
File "/usr/local/lib/python3.12/site-packages/pymysql/err.py", line 150, in raise_mysql_exception
raise errorclass(errno, errval)
sqlalchemy.exc.ProgrammingError: (pymysql.err.ProgrammingError) (1146, "Table 'RestaurantMaster.print_jobs' doesn't exist")
[SQL:
SELECT id
FROM print_jobs
WHERE status = 'pending'
AND printer_type = %(printer_type)s
AND (next_retry_at IS NULL OR next_retry_at <= NOW())
ORDER BY created_at ASC
LIMIT %(limit)s
FOR UPDATE SKIP LOCKED
]
[parameters: {'printer_type': 'delivery', 'limit': 10}]
(Background on this error at: https://sqlalche.me/e/20/f405)
2026-07-22 09:51:30,204 INFO [app.main] Stopped POS Print Service
2026-07-22 09:51:42,614 INFO [app.main] Starting POS Print Service
2026-07-22 09:51:42,615 INFO [app.worker] Started pos-print-service:delivery_worker
2026-07-22 09:51:42,621 INFO [app.worker] Started pos-print-service:dine-in_worker
2026-07-22 09:51:42,624 INFO [app.worker] Started pos-print-service:health_checker
2026-07-22 09:51:42,633 INFO [app.worker] Started pos-print-service:printer_health_checker
2026-07-22 09:51:42,636 INFO [app.worker] Started pos-print-service:failed_job_retry_worker
2026-07-22 09:55:04,502 WARNING [app.worker] 🟥 POS printer health error | Branch: MTL | Printer type: dine-in | Printer: dragonmtl.dyndns.org:5012 | Error type: offline | Down duration: 0s | Status: Printer connection failed: [Errno 113] No route to host |
2026-07-22 09:55:33,322 INFO [app.worker] ✅ POS printer recovered | Branch: MTL | Printer type: dine-in | Printer: dragonmtl.dyndns.org:5012 | Previous error type: offline | Down duration: 29s | Current status: Printer is online but did not return ESC/POS status |
2026-07-22 09:55:53,903 WARNING [app.worker] 🟥 POS printer health error | Branch: MTL | Printer type: dine-in | Printer: dragonmtl.dyndns.org:5012 | Error type: offline | Down duration: 0s | Status: Printer connection failed: [Errno 113] No route to host |
2026-07-22 09:56:18,942 WARNING [app.worker] 🟥 POS printer health error | Branch: MTL | Printer type: dine-in | Printer: dragonmtl.dyndns.org:5012 | Error type: offline | Down duration: 24s | Status: Printer connection failed: [Errno 113] No route to host |
2026-07-22 09:56:48,930 INFO [app.worker] ✅ POS printer recovered | Branch: MTL | Printer type: dine-in | Printer: dragonmtl.dyndns.org:5012 | Previous error type: offline | Down duration: 54s | Current status: Printer is online but did not return ESC/POS status |
2026-07-22 09:57:09,454 WARNING [app.worker] 🟥 POS printer health error | Branch: MTL | Printer type: dine-in | Printer: dragonmtl.dyndns.org:5012 | Error type: offline | Down duration: 0s | Status: Printer connection failed: [Errno 113] No route to host |
2026-07-22 09:57:39,421 INFO [app.worker] ✅ POS printer recovered | Branch: MTL | Printer type: dine-in | Printer: dragonmtl.dyndns.org:5012 | Previous error type: offline | Down duration: 30s | Current status: Printer is online but did not return ESC/POS status |
2026-07-22 09:58:00,384 WARNING [app.worker] 🟥 POS printer health error | Branch: MTL | Printer type: dine-in | Printer: dragonmtl.dyndns.org:5012 | Error type: offline | Down duration: 0s | Status: Printer connection failed: [Errno 113] No route to host |
2026-07-22 09:58:25,125 WARNING [app.worker] 🟥 POS printer health error | Branch: MTL | Printer type: dine-in | Printer: dragonmtl.dyndns.org:5012 | Error type: offline | Down duration: 25s | Status: Printer connection failed: [Errno 113] No route to host |
2026-07-22 09:58:40,652 INFO [app.main] Stopped POS Print Service
2026-07-22 09:58:51,563 INFO [app.main] Starting POS Print Service
2026-07-22 09:58:51,565 INFO [app.worker] Started pos-print-service:delivery_worker
2026-07-22 09:58:51,568 INFO [app.worker] Started pos-print-service:dine-in_worker
2026-07-22 09:58:51,570 INFO [app.worker] Started pos-print-service:health_checker
2026-07-22 09:58:51,573 INFO [app.worker] Started pos-print-service:printer_health_checker
2026-07-22 09:58:51,577 INFO [app.worker] Started pos-print-service:failed_job_retry_worker
2026-07-22 09:58:56,690 INFO [app.worker] ✅ POS printer recovered | Branch: MTL | Printer type: dine-in | Printer: dragonmtl.dyndns.org:5012 | Previous error type: offline | Down duration: 56s | Current status: Printer is online but did not return ESC/POS status |
2026-07-22 09:59:27,233 WARNING [app.worker] 🟥 POS printer health error | Branch: MTL | Printer type: dine-in | Printer: dragonmtl.dyndns.org:5012 | Error type: offline | Down duration: 0s | Status: Printer connection failed: [Errno 113] No route to host |
2026-07-22 10:00:02,819 WARNING [app.worker] 🟥 POS printer health error | Branch: MTL | Printer type: dine-in | Printer: dragonmtl.dyndns.org:5012 | Error type: offline | Down duration: 35s | Status: Printer connection failed: [Errno 113] No route to host |
2026-07-22 10:00:42,472 INFO [app.worker] ✅ POS printer recovered | Branch: MTL | Printer type: dine-in | Printer: dragonmtl.dyndns.org:5012 | Previous error type: offline | Down duration: 1m 15s | Current status: Printer is online but did not return ESC/POS status |
2026-07-22 10:01:13,006 WARNING [app.worker] 🟥 POS printer health error | Branch: MTL | Printer type: dine-in | Printer: dragonmtl.dyndns.org:5012 | Error type: offline | Down duration: 0s | Status: Printer connection failed: [Errno 113] No route to host |
2026-07-22 10:01:52,984 INFO [app.worker] ✅ POS printer recovered | Branch: MTL | Printer type: dine-in | Printer: dragonmtl.dyndns.org:5012 | Previous error type: offline | Down duration: 39s | Current status: Printer is online but did not return ESC/POS status |
2026-07-22 10:02:23,564 WARNING [app.worker] 🟥 POS printer health error | Branch: MTL | Printer type: dine-in | Printer: dragonmtl.dyndns.org:5012 | Error type: offline | Down duration: 0s | Status: Printer connection failed: [Errno 113] No route to host |
2026-07-22 10:03:01,820 WARNING [app.worker] 🟥 POS printer health error | Branch: MTL | Printer type: dine-in | Printer: dragonmtl.dyndns.org:5012 | Error type: offline | Down duration: 37s | Status: Printer connection failed: [Errno 113] No route to host |
2026-07-22 10:03:38,585 INFO [app.worker] ✅ POS printer recovered | Branch: MTL | Printer type: dine-in | Printer: dragonmtl.dyndns.org:5012 | Previous error type: offline | Down duration: 1m 14s | Current status: Printer is online but did not return ESC/POS status |
2026-07-22 10:04:09,370 WARNING [app.worker] 🟥 POS printer health error | Branch: MTL | Printer type: dine-in | Printer: dragonmtl.dyndns.org:5012 | Error type: offline | Down duration: 0s | Status: Printer connection failed: [Errno 113] No route to host | Access
Server-side API key
API URLhttp://api:8000
Browser API keyHidden
Dashboard port3002