{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 00:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 00:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 00:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 00:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 00:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 00:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 00:00:01"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 00:00:01"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 00:00:01"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 00:00:01"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 00:00:01"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 00:00:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 00:00:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 00:00:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 00:00:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 00:00:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 00:00:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 00:00:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:00:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:00:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:00:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:00:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:00:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:00:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:00:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:00:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:00:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:00:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:00:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:00:01"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 00:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 00:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 00:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 00:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 00:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 00:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 00:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 00:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 00:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 00:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 00:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 00:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 00:30:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 00:33:59"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 00:33:59"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 00:33:59"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 00:33:59"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 00:33:59"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 00:33:59"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 00:33:59"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 00:33:59"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 00:33:59"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 00:33:59"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 00:33:59"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 00:33:59"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 01:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 01:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 01:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 01:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 01:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 01:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 01:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 01:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 01:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 01:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 01:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 01:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 01:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 01:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 01:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 01:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 01:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 01:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:00:03"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 01:04:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 01:04:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 01:04:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 01:04:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 01:04:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 01:04:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 01:04:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 01:04:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 01:04:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 01:04:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 01:04:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 01:04:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 01:26:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 01:26:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 01:26:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 01:26:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 01:26:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 01:26:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 01:26:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 01:26:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 01:26:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 01:26:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 01:26:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 01:26:19"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 01:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 01:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 01:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 01:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 01:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 01:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 01:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 01:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 01:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 01:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 01:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 01:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 01:30:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 01:54:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 01:54:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 01:54:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 01:54:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 01:54:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 01:54:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 01:54:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 01:54:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 01:54:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 01:54:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 01:54:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 01:54:38"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 02:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 02:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 02:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 02:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 02:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 02:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 02:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 02:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 02:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 02:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 02:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 02:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 02:00:05"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 02:00:05"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 02:00:05"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 02:00:05"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 02:00:05"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 02:00:05"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:00:05"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:00:05"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:00:05"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:00:05"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:00:05"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:00:05"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:00:05"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:00:05"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:00:05"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:00:05"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:00:05"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:00:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 02:16:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 02:16:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 02:16:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 02:16:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 02:16:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 02:16:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 02:16:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 02:16:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 02:16:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 02:16:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 02:16:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 02:16:23"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 02:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 02:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 02:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 02:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 02:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 02:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 02:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 02:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 02:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 02:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 02:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 02:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 02:30:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 03:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 03:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 03:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 03:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 03:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 03:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 03:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 03:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 03:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 03:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 03:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 03:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 03:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 03:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 03:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 03:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 03:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 03:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 03:10:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 03:10:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 03:10:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 03:10:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 03:10:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 03:10:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 03:10:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 03:10:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 03:10:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 03:10:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 03:10:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 03:10:01"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 03:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 03:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 03:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 03:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 03:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 03:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 03:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 03:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 03:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 03:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 03:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 03:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 03:30:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 03:33:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 03:33:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 03:33:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 03:33:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 03:33:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 03:33:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 03:33:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 03:33:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 03:33:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 03:33:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 03:33:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 03:33:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 03:45:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 03:45:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 03:45:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 03:45:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 03:45:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 03:45:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 03:45:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 03:45:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 03:45:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 03:45:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 03:45:36"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 03:45:36"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 04:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 04:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 04:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 04:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 04:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 04:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 04:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 04:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 04:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 04:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 04:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 04:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"This operation was aborted","timestamp":"2026-04-02 04:00:05"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"This operation was aborted","timestamp":"2026-04-02 04:00:05"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"This operation was aborted","timestamp":"2026-04-02 04:00:05"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"This operation was aborted","timestamp":"2026-04-02 04:00:05"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"This operation was aborted","timestamp":"2026-04-02 04:00:05"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"This operation was aborted","timestamp":"2026-04-02 04:00:05"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-02 04:00:05"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-02 04:00:05"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-02 04:00:05"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-02 04:00:05"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-02 04:00:05"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-02 04:00:05"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-02 04:00:05"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-02 04:00:05"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-02 04:00:05"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-02 04:00:05"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-02 04:00:05"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., This operation was aborted","timestamp":"2026-04-02 04:00:05"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:02:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:02:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:02:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:02:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:02:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:02:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:02:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:02:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:02:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:02:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:02:38"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:02:38"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 04:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 04:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 04:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 04:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 04:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 04:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 04:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 04:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 04:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 04:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 04:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 04:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 04:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 04:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 04:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 04:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 04:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 04:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 04:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 04:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 04:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 04:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 04:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 04:30:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:30:47"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:30:47"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:30:47"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:30:47"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:30:47"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:30:47"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:30:47"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:30:47"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:30:47"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:30:47"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:30:47"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:30:47"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:42:16"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:42:16"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:42:16"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:42:16"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:42:16"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:42:16"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:42:16"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:42:16"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:42:16"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:42:16"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:42:16"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:42:16"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:53:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:53:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:53:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:53:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:53:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 04:53:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:53:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:53:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:53:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:53:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:53:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 04:53:02"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 05:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 05:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 05:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 05:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 05:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 05:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 05:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 05:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 05:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 05:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 05:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 05:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 05:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 05:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 05:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 05:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 05:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 05:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:00:04"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 05:18:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 05:18:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 05:18:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 05:18:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 05:18:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 05:18:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 05:18:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 05:18:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 05:18:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 05:18:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 05:18:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 05:18:22"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 05:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 05:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 05:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 05:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 05:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 05:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 05:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 05:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 05:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 05:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 05:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 05:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 05:30:02"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 06:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 06:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 06:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 06:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 06:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 06:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 06:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 06:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 06:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 06:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 06:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 06:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 06:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 06:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 06:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 06:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 06:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 06:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:03:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:03:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:03:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:03:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:03:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:03:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:03:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:03:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:03:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:03:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:03:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:03:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:25:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:25:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:25:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:25:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:25:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:25:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:25:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:25:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:25:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:25:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:25:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:25:41"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 06:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 06:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 06:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 06:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 06:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 06:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 06:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 06:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 06:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 06:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 06:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 06:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 06:30:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:41:51"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:41:51"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:41:51"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:41:51"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:41:51"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:41:51"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:41:51"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:41:51"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:41:51"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:41:51"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:41:51"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:41:51"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:55:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:55:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:55:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:55:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:55:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 06:55:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:55:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:55:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:55:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:55:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:55:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 06:55:33"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 07:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 07:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 07:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 07:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 07:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 07:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 07:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 07:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 07:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 07:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 07:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 07:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 07:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 07:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 07:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 07:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 07:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 07:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 07:09:58"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 07:09:58"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 07:09:58"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 07:09:58"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 07:09:58"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 07:09:58"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 07:09:58"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 07:09:58"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 07:09:58"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 07:09:58"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 07:09:58"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 07:09:58"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 07:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 07:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 07:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 07:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 07:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 07:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 07:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 07:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 07:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 07:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 07:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 07:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 07:30:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 07:42:46"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 07:42:46"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 07:42:46"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 07:42:46"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 07:42:46"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 07:42:46"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 07:42:46"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 07:42:46"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 07:42:46"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 07:42:46"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 07:42:46"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 07:42:46"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 07:50:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 07:50:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 07:50:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 07:50:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 07:50:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 07:50:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 07:50:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 07:50:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 07:50:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 07:50:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 07:50:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 07:50:56"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 08:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 08:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 08:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 08:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 08:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 08:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 08:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 08:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 08:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 08:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 08:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 08:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 08:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 08:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 08:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 08:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 08:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 08:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 08:12:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 08:12:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 08:12:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 08:12:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 08:12:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 08:12:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 08:12:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 08:12:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 08:12:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 08:12:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 08:12:54"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 08:12:54"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 08:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 08:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 08:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 08:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 08:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 08:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 08:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 08:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 08:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 08:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 08:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 08:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 08:30:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 08:40:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 08:40:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 08:40:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 08:40:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 08:40:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 08:40:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 08:40:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 08:40:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 08:40:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 08:40:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 08:40:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 08:40:56"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 09:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 09:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 09:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 09:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 09:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 09:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 09:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 09:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 09:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 09:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 09:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 09:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 09:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 09:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 09:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 09:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 09:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 09:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:00:04"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:03:58"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:03:58"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:03:58"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:03:58"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:03:58"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:03:58"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:03:58"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:03:58"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:03:58"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:03:58"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:03:58"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:03:58"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:21:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:21:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:21:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:21:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:21:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:21:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:21:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:21:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:21:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:21:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:21:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:21:35"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 09:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 09:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 09:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 09:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 09:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 09:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 09:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 09:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 09:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 09:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 09:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 09:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 09:30:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:40:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:40:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:40:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:40:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:40:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:40:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:40:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:40:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:40:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:40:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:40:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:40:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:42:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:42:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:42:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:42:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:42:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 09:42:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:42:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:42:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:42:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:42:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:42:13"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 09:42:13"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 10:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 10:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 10:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 10:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 10:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 10:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 10:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 10:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 10:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 10:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 10:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 10:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 10:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 10:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 10:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 10:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 10:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 10:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 10:01:53"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 10:01:53"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 10:01:53"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 10:01:53"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 10:01:53"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 10:01:53"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 10:01:53"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 10:01:53"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 10:01:53"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 10:01:53"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 10:01:53"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 10:01:53"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 10:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 10:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 10:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 10:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 10:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 10:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 10:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 10:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 10:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 10:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 10:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 10:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 10:30:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 10:51:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 10:51:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 10:51:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 10:51:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 10:51:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 10:51:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 10:51:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 10:51:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 10:51:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 10:51:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 10:51:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 10:51:23"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 11:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 11:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 11:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 11:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 11:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 11:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 11:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 11:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 11:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 11:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 11:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 11:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 11:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 11:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 11:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 11:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 11:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 11:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 11:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 11:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 11:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 11:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 11:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 11:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 11:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 11:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 11:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 11:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 11:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 11:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 11:30:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:33:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:33:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:33:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:33:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:33:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:33:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:33:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:33:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:33:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:33:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:33:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:33:56"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:38:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:38:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:38:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:38:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:38:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:38:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:38:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:38:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:38:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:38:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:38:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:38:23"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:51:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:51:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:51:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:51:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:51:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:51:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:51:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:51:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:51:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:51:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:51:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:51:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:52:20"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:52:20"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:52:20"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:52:20"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:52:20"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 11:52:20"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:52:20"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:52:20"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:52:20"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:52:20"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:52:20"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 11:52:20"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 12:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 12:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 12:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 12:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 12:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 12:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 12:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 12:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 12:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 12:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 12:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 12:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 12:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 12:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 12:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 12:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 12:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 12:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 12:18:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 12:18:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 12:18:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 12:18:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 12:18:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 12:18:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 12:18:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 12:18:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 12:18:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 12:18:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 12:18:19"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 12:18:19"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 12:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 12:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 12:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 12:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 12:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 12:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 12:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 12:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 12:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 12:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 12:30:02"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 12:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:30:02"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:30:02"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 12:30:02"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 12:52:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 12:52:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 12:52:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 12:52:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 12:52:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 12:52:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 12:52:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 12:52:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 12:52:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 12:52:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 12:52:15"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 12:52:15"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 13:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 13:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 13:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 13:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 13:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 13:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 13:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 13:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 13:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 13:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 13:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 13:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 13:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 13:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 13:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 13:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 13:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 13:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 13:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 13:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 13:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 13:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 13:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 13:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 13:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 13:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 13:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 13:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 13:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 13:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 13:30:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 13:33:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 13:33:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 13:33:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 13:33:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 13:33:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 13:33:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 13:33:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 13:33:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 13:33:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 13:33:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 13:33:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 13:33:45"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 14:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 14:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 14:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 14:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 14:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 14:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 14:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 14:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 14:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 14:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 14:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 14:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 14:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 14:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 14:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 14:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 14:00:04"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 14:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:00:04"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:00:04"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:00:04"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:06:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:06:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:06:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:06:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:06:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:06:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:06:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:06:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:06:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:06:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:06:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:06:11"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 14:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 14:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 14:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 14:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 14:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 14:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 14:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 14:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 14:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 14:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 14:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 14:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 14:30:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:30:18"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:38:48"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:38:48"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:38:48"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:38:48"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:38:48"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:38:48"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:38:48"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:38:48"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:38:48"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:38:48"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:38:48"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:38:48"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:38:49"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:38:49"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:38:49"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:38:49"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:38:49"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:38:49"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:38:49"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:38:49"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:38:49"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:38:49"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:38:49"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:38:49"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:55:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:55:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:55:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:55:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:55:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 14:55:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:55:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:55:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:55:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:55:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:55:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 14:55:40"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 15:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 15:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 15:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 15:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 15:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 15:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 15:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 15:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 15:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 15:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 15:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 15:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 15:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 15:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 15:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 15:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 15:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 15:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:11:04"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:11:04"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:11:04"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:11:04"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:11:04"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:11:04"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:11:04"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:11:04"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:11:04"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:11:04"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:11:04"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:11:04"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 15:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 15:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 15:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 15:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 15:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 15:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 15:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 15:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 15:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 15:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 15:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 15:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 15:30:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:32:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:32:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:32:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:32:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:32:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:32:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:32:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:32:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:32:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:32:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:32:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:32:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:42:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:42:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:42:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:42:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:42:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:42:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:42:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:42:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:42:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:42:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:42:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:42:22"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:42:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:42:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:42:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:42:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:42:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:42:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:42:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:42:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:42:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:42:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:42:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:42:25"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:49:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:49:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:49:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:49:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:49:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:49:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:49:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:49:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:49:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:49:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:49:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:49:39"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:59:46"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:59:46"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:59:46"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:59:46"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:59:46"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 15:59:46"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:59:46"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:59:46"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:59:46"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:59:46"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:59:46"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 15:59:46"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 16:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 16:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 16:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 16:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 16:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 16:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 16:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 16:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 16:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 16:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 16:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 16:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 16:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 16:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 16:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 16:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 16:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 16:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 16:05:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 16:05:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 16:05:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 16:05:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 16:05:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 16:05:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 16:05:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 16:05:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 16:05:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 16:05:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 16:05:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 16:05:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 16:28:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 16:28:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 16:28:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 16:28:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 16:28:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 16:28:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 16:28:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 16:28:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 16:28:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 16:28:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 16:28:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 16:28:26"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 16:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 16:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 16:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 16:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 16:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 16:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 16:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 16:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 16:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 16:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 16:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 16:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 16:30:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 16:48:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 16:48:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 16:48:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 16:48:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 16:48:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 16:48:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 16:48:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 16:48:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 16:48:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 16:48:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 16:48:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 16:48:09"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 17:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 17:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 17:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 17:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 17:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 17:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 17:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 17:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 17:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 17:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 17:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 17:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 17:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 17:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 17:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 17:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 17:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 17:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:06:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:06:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:06:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:06:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:06:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:06:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:06:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:06:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:06:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:06:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:06:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:06:45"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:29:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:29:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:29:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:29:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:29:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:29:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:29:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:29:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:29:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:29:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:29:35"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:29:35"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 17:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 17:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 17:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 17:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 17:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 17:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 17:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 17:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 17:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 17:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 17:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 17:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 17:30:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:32:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:32:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:32:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:32:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:32:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:32:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:32:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:32:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:32:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:32:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:32:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:32:33"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:53:51"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:53:51"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:53:51"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:53:51"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:53:51"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 17:53:51"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:53:51"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:53:51"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:53:51"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:53:51"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:53:51"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 17:53:51"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 18:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 18:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 18:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 18:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 18:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 18:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 18:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 18:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 18:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 18:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 18:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 18:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 18:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 18:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 18:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 18:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 18:00:03"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 18:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:00:03"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:00:03"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:00:03"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 18:15:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 18:15:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 18:15:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 18:15:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 18:15:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 18:15:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 18:15:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 18:15:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 18:15:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 18:15:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 18:15:26"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 18:15:26"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 18:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 18:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 18:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 18:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 18:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 18:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 18:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 18:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 18:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 18:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 18:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 18:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 18:30:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 18:30:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 18:30:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 18:30:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 18:30:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 18:30:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 18:30:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 18:30:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 18:30:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 18:30:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 18:30:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 18:30:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 18:30:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 18:51:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 18:51:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 18:51:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 18:51:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 18:51:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 18:51:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 18:51:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 18:51:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 18:51:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 18:51:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 18:51:11"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 18:51:11"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 19:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 19:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 19:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 19:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 19:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 19:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 19:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 19:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 19:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 19:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 19:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 19:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 19:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 19:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 19:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 19:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 19:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 19:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 19:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 19:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 19:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 19:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 19:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 19:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 19:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 19:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 19:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 19:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 19:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 19:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 19:30:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 19:34:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 19:34:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 19:34:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 19:34:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 19:34:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 19:34:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 19:34:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 19:34:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 19:34:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 19:34:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 19:34:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 19:34:42"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 19:52:14"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 19:52:14"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 19:52:14"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 19:52:14"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 19:52:14"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 19:52:14"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 19:52:14"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 19:52:14"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 19:52:14"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 19:52:14"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 19:52:14"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 19:52:14"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 20:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 20:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 20:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 20:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 20:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 20:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 20:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 20:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 20:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 20:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 20:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 20:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 20:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 20:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 20:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 20:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 20:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 20:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 20:07:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 20:07:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 20:07:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 20:07:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 20:07:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 20:07:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 20:07:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 20:07:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 20:07:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 20:07:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 20:07:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 20:07:09"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 20:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 20:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 20:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 20:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 20:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 20:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 20:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 20:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 20:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 20:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 20:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 20:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 20:30:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 20:35:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 20:35:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 20:35:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 20:35:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 20:35:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 20:35:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 20:35:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 20:35:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 20:35:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 20:35:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 20:35:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 20:35:32"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 20:53:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 20:53:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 20:53:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 20:53:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 20:53:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 20:53:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 20:53:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 20:53:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 20:53:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 20:53:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 20:53:09"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 20:53:09"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 21:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 21:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 21:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 21:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 21:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 21:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 21:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 21:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 21:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 21:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 21:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 21:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 21:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 21:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 21:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 21:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 21:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 21:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 21:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 21:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 21:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 21:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 21:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 21:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 21:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 21:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 21:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 21:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 21:30:01"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 21:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:30:01"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:30:01"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 21:30:01"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 21:42:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 21:42:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 21:42:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 21:42:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 21:42:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 21:42:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 21:42:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 21:42:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 21:42:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 21:42:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 21:42:41"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 21:42:41"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 22:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 22:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 22:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 22:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 22:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 22:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 22:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 22:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 22:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 22:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 22:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 22:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 22:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 22:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 22:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 22:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 22:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 22:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 22:25:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 22:25:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 22:25:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 22:25:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 22:25:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 22:25:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 22:25:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 22:25:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 22:25:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 22:25:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 22:25:40"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 22:25:40"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 22:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 22:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 22:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 22:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 22:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 22:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 22:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 22:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 22:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 22:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 22:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 22:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 22:30:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 22:54:06"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 22:54:06"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 22:54:06"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 22:54:06"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 22:54:06"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 22:54:06"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 22:54:06"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 22:54:06"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 22:54:06"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 22:54:06"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 22:54:06"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 22:54:06"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"unhandledRejection","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 23:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"route","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 23:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 23:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 23:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 23:00:00"}
{"category":"unhandledRejection","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/index.js","label":"worker","level":"error","message":"Error\n    at Query.run (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/mysql/query.js:52:25)\n    at /home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/sequelize.js:315:28\n    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n    at async MySQLQueryInterface.select (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/dialects/abstract/query-interface.js:407:12)\n    at async binaryOrder.findAll (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/node_modules/.pnpm/sequelize@6.37.7_mysql2@3.14.0/node_modules/sequelize/lib/model.js:1140:21)\n    at async getBinaryOrdersByStatus (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/utils.js:46:13)\n    at async BinaryOrderService.processPendingOrders (/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/exchange/binary/order/util/BinaryOrderService.js:324:35)","timestamp":"2026-04-02 23:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 23:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 23:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 23:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 23:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 23:00:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 23:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 23:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 23:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 23:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 23:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 23:00:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 23:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:00:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:00:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:00:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:14:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:14:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:14:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:14:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:14:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:14:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:14:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:14:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:14:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:14:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:14:24"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:14:24"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 23:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 23:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 23:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 23:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 23:30:00"}
{"category":"fetchOpenExchangeRates - OpenExchangeRates","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Forbidden: Access denied.","timestamp":"2026-04-02 23:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 23:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 23:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 23:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 23:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 23:30:00"}
{"category":"fetchOpenExchangeRates - Frankfurter","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"No currencies data available in Redis","timestamp":"2026-04-02 23:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"unhandledRejection","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"route","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:30:00"}
{"category":"fetchFiatCurrencyPrices","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:30:00"}
{"category":"worker","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/utils/cron.js","label":"worker","level":"error","message":"Both API calls failed: Forbidden: Access denied., No currencies data available in Redis","timestamp":"2026-04-02 23:30:00"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:34:59"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:34:59"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:34:59"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:34:59"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:34:59"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:34:59"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:34:59"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:34:59"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:34:59"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:34:59"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:34:59"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:34:59"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:36:43"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:36:43"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:36:43"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:36:43"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:36:43"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:36:43"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:36:43"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:36:43"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:36:43"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:36:43"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:36:43"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:36:43"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:50:20"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:50:20"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:50:20"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:50:20"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:50:20"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/course/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courses' doesn't exist","timestamp":"2026-04-02 23:50:20"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"unhandledRejection","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:50:20"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"route","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:50:20"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - OpenExchangeRates","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:50:20"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchOpenExchangeRates - Frankfurter","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:50:20"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"fetchFiatCurrencyPrices","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:50:20"}
{"category":"route","file":"/home/marwanov/public_html/trade.qtx-sy.com/top_a_trader/dist/backend/api/learning/category/index.get.js","label":"worker","level":"error","message":"Table 'marwanov_initial.courseCategory' doesn't exist","timestamp":"2026-04-02 23:50:20"}
