node:internal/modules/cjs/loader:1424
  throw err;
  ^

Error: Cannot find module 'express'
Require stack:
- /home/deshitbd/server-erp.deshit-bd.com/src/api.js
- /home/deshitbd/server-erp.deshit-bd.com/index.js
- /usr/local/lsws/fcgi-bin/lsnode.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1421:15)
    at defaultResolveImpl (node:internal/modules/cjs/loader:1059:19)
    at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1064:22)
    at Module._load (node:internal/modules/cjs/loader:1227:37)
    at TracingChannel.traceSync (node:diagnostics_channel:328:14)
    at wrapModuleLoad (node:internal/modules/cjs/loader:245:24)
    at Module.require (node:internal/modules/cjs/loader:1504:12)
    at require (node:internal/modules/helpers:152:16)
    at Object.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/src/api.js:1:17)
    at Module._compile (node:internal/modules/cjs/loader:1761:14) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/deshitbd/server-erp.deshit-bd.com/src/api.js',
    '/home/deshitbd/server-erp.deshit-bd.com/index.js',
    '/usr/local/lsws/fcgi-bin/lsnode.js'
  ]
}

Node.js v24.13.0
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1701:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:89:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-11T16:00:01.324Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1701:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:89:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '270',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-11\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 246710.88\\nExpense: 0\\nProfit/Loss: 297000"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 270,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 270\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 42,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 270,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 27544409,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 97134,
        Symbol(triggerId): 97132,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'x-fb-aed': '807',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 11-Apr-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AugypmC-oBlDPRoMFUb51vw',
      'x-fb-trace-id': 'D9RNDWXumNc',
      'x-fb-rev': '1037151346',
      'x-fb-debug': 'xlnIOGmAuuUZe915PnbajBSs67tSHzY38htlIoUHxl9O/0DQCPkQAnKICeAv1QRBt4+MGXJWEaw5U6YVcYKYlw==',
      date: 'Sat, 11 Apr 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcOJfmmrpZQntZA9B9DwmmAgcBUq7xWvmVu1lbL7dJtRbAlsEwxBU9DdHmpjnxo1WhZFAhg-8i081JXSATy2LaC5umOVUoz91M0"; e_clientaddr="AcNkOSrqd3i0f94_-DirLxROWrsfLwOA9FaLyl3amxyAhdkps-uxIEb05diJe65NB8nC3oj64tGgigF7yNDda0D_GSE2y-zyPo3L9P27fGK3QFnP"; e_upip="AcMgWBOGJ6mYrCWL-7Q6Bg2wh58fgc8BMmZOahZmjMpRnbhKnaPDxDtKcO43feYwN2J2SzC0SNn9RijtYC_12--2FHgjRZyviOOiUCdwbQ"; e_fb_zone="AcOnW5_f6JJU5f8Dvz6bq8XEwDami7q4vpspEtRosyDGq4RVY18jFH7sBWaLc2a9"; e_fb_twtaskhandle="AcM99XEkPN2CzvWBytV3EGc34Ro8IRaVUX8yAMaHTDCi3oRH1o9o2m1SWHl4HHo3H8QEIGNlj1Xu_BOeP0gQySyipOzzSIlghWKwv0GcToCa6jE"; e_proxy="AcO7mpLo9E54DIFo-US2FSqbFqin-nEIotYbv6ktm5OXzrwHD0E6CEsAXGOm0pRe3TJU2t4iODI0CpRByS2Vuw", http_request_error; e_fb_vipaddr="AcMXdSUpQfrt4zsYb848zB_hZ3odckijdrj-KSjaAjwk-B85EEPAMdx7EBKAg-bscIGlIfSu"; e_clientaddr="AcOzg-W9OUM06wh_vfBPI-jKk5e48J_GZ-yq8sSG1cBm1gN-958vhN4pt-wULJrY4-bk415Ex8MTp9GT2gU"; e_upip="AcP2EOLL0xCp-K5x3RyWxUAqMVK50lWJMY9WUN3upCHeaIfBudqWHAn_yrxo3ARe1TsMQzkxxj-dzgbGmbyarg4Q5nwlj3fBfwk"; e_fb_zone="AcM9icufzNRRmLvvA2fox1EqeTBrIaPf2MvMamWqel5Qguy-difnLYjWEX5ZGg"; e_fb_twtaskhandle="AcMnnnvmovUB2V3DZoQhejxD9NjAMORRkjzekc9N49BzaY7T2J672zUizyjfRpj9UlUY-HvHJC-ZNzAa9Xr3AjSf1AN_K56inefu"; e_proxy="AcOeezIcvZ2jM5F1HQIC0JA86S548_CHUOZ6rCcGpBNl0vZ_itpyprsc2VFPHdApR1fCbFCenOfdqhI"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=823, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-11\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 246710.88\\nExpense: 0\\nProfit/Loss: 297000"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 270,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 270\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1701:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:89:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-12T16:00:00.908Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1701:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:89:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-12\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 42,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 37328530,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 83146,
        Symbol(triggerId): 83144,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'x-fb-aed': '807',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 12-Apr-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AAlfEqG3U2fieW-aUJD_HDQ',
      'x-fb-trace-id': 'D6yL0hvQiUD',
      'x-fb-rev': '1037170828',
      'x-fb-debug': 'wUF5yZgZ4DWWl9k1R3nAhgbMcKTRttfN0UQJOYQ0VHKuCI466VFIqrOQdS7jH0uor9JGcY36LBjQB5thoTlsBg==',
      date: 'Sun, 12 Apr 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcMCDZeS7VVJoCNCaviRDFRsU7V0jr9xA7P8td_EK0p3SecRJTqPYkVcQioQI_k4R8hnHCTnDydGawxk6cV_ym8Cwglm951NL2Q"; e_clientaddr="AcPzZtwvVzP21RtwmZ28rIyxgwEB1VyuEZ1slODI8K7k2R0m4Fer5m4ddJs75uPSHiUyte7cNDT6iEeX_yXtTSFU2fs7c0JA8hDACKieTMVtSN-5"; e_upip="AcP_DBz6EDEWUWYRpbdZrYZY60_y95qbrlN8WXzMk0DB0RiaPSnbeOMFYHYIWcrxGO25UfCjAiWP8p6-K0vgLAmamqcTR1og-8ogoMNlnY4"; e_fb_zone="AcOGrkdDa1clX7RQ4zEIPIE21Vsk-y2iaQ902qUkyxreQtov8aB3t8Ra3-IfNUn4"; e_fb_twtaskhandle="AcNzRwRydwopQtJ9R7pkiu_b6rbEWIiCMiE2UfNiUBRx1spcc46CQx-G-a7HXHyETv6fPRDCoDYyCy66ej_9JtNGxjgi8uNyyCSBD5rPzR7aW7o"; e_proxy="AcPZCtgDt4gPVP_41t4QC4XOOVeHD99l5_Ycp6fbIk8slkAHn5Bq5bxG0wyU6mpnQEHl7S_1Kmx1NitdLiw", http_request_error; e_fb_vipaddr="AcMSS1Gc6ffg1SHXlN_7IsMiEP69xaMGFc3eEyran-Qf_dk7GL7ktIcOv3KFTMkbClrSZdSr"; e_clientaddr="AcOwWiqVQ3yak4E2ARg7Xu1bw5VkhrlK2BXBaYCvGmKGDdIgz7UWCx65LYpDxhLvb8TkwMv5zSVOvBr5-N0"; e_upip="AcP6N-vmgv-F4yl9_j2xWIJmlpcbhH63FeWUYkFcgECymO_DMvdL7MPFOdH8sEEkA7wsXuFNP94HyFVWo79WQLSMuL1WWqPiABM"; e_fb_zone="AcNj6yoDfbKH54nAOWNjhnVt8ugNlEBA2QPh8wGAbzUz8xL8RQ-xUfzBNHNzdw"; e_fb_twtaskhandle="AcNo0ESqAQ0Gcyf-uJBoUkK-pwr47u6JZTiDL-NZ0s_oKMe0wGNfeEc0a0qN64_2x4TZYzrTjP9smNtdI082sPvJMIVDhjjjEpI"; e_proxy="AcNzxi_Jf6A3A_Xjxo5CgDkbRIPbyeFrAEuFZifv4EXh5Uja1VMmMxFhLaGuQWPfcuC88T1Rhf1OyCQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=272, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-12\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1701:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:89:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-13T16:00:05.367Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1701:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:89:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-13\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 42,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 123733542,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 259395,
        Symbol(triggerId): 259393,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'x-fb-aed': '808',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 13-Apr-26 09:00:04 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AcBjaDH-t5hNCFivkOIdMb9',
      'x-fb-trace-id': 'B9kmEgQn85w',
      'x-fb-rev': '1037192857',
      'x-fb-debug': 'T4YFScQkVcQDgPov7p2JkfSDlIMUHmulYxoVNzQ6ydqjvhrPgtPxVKgbPZuZ+0K9f/OYKGOcVcidqxcPHIxmOw==',
      date: 'Mon, 13 Apr 2026 16:00:04 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcPVBaz0zJ0OZLNN903HudHsQfs6a71XChGxjWBJRTKwehNiqktfM_3FLQe2Hqg7cek5K3mYD-Eb2or0cjCOmW-GqM5Bu4vkFkA"; e_clientaddr="AcOse_oPVVTcGrOjPtisA6sV_CzSRyA6b0VZz7xUHopwfOMVxaby1-JNqho272oL7dvwEEnwJf1n1poxTugpKU6YE_LfdJVdi159KSmjUwGpiHSU"; e_upip="AcM5RZLhD02Ka2EKjHbjg1-roeEbm6irubL8hy9Hctr98DyWJ9u31XBpoh210XsWKkalWX-pWEXK6yX3Ndw11utROdHiNCsOFo0NOA6UoA"; e_fb_zone="AcMYTXgzjrXCZnec7vtUmqP-qjhcN6WPQMUHjcwejPJagJIczINJwuXmjZtVBAwy"; e_fb_twtaskhandle="AcNyD_aqgQmiAOZ6Eo5GlijzsWVcAbLd8WJVhlQHlx4p6HCo_wb115Be_DlOrH4whEWMhlVYRg-F5JZitqCRmzKgPGroGVBVusnu_hZ4JZTWJTw"; e_proxy="AcPvwLumBlkzGQPkmolG0gKTbS_y4JGCJ60uymAeGN4IbkpiS45szT0BHpBlTVpqdQHnLyxTRe981q5DPE7s", http_request_error; e_fb_vipaddr="AcNnEFKwZe49MEihHrSzrbuwspRyfFFcNJJVjNbOVOMm3yXbQFBneT5DQG0A6Mcjyl7r54xa"; e_clientaddr="AcNmByfEULG8a_PEJwKouWNw9GdFCp4YqgHN1xWUbCCVeKIkxZvdCGSbmMFFLxgpJqt14bLWvZxCcOfa7rE"; e_upip="AcNuvScMCDIUIa4GbA7ogP5FT4SGOyfaIWS1VBfCSP3i1EvOXt3fQrb4LgwdSz95eWX8UY6y85etaF_7mv5FKL44s4eI-gLD0ug"; e_fb_zone="AcMChaQVxHHbchpZJA4tfW4vJKyKuCLpJyHjoEgm2dAl9fbX_Z-qT0l6ymhQug"; e_fb_twtaskhandle="AcNYwCJDIqLV5hUVINnz-fzM8Hb7ByKSKSiAm5qZUYEXg1T1Burin1GcdNUi0zwuRvCVjmEF6AtQN65hcHZSAy65gZnS2xf_7A"; e_proxy="AcOdiY1ABddgrjVoyy4-43fENo8OySWI-ihnAOHPFLAeP_osNOgygfnllJCtpSvI_kLkb6QX9FIStRA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=6, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=808, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-13\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1701:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:89:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-14T16:00:06.636Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1701:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:89:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-14\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 42,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 210136440,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 431422,
        Symbol(triggerId): 431420,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'x-fb-aed': '813',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 14-Apr-26 09:00:06 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ArSJr-jG7PhXmYYmgCtR2yK',
      'x-fb-trace-id': 'AteLVHqhohH',
      'x-fb-rev': '1037295816',
      'x-fb-debug': '6fbTuVIL8thkYEEYIrQPilLZ3g29Ux64vu8dLpOJjWtsQbbYto6ElcuMD57/H029/eUSKAbAFK8GlOlaQ8Ropg==',
      date: 'Tue, 14 Apr 2026 16:00:06 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcOKcSdXwdEUSY5wWXbzHfsjVvdqXU4Mzt9rxYOZ07ExJsPgVAa-MieGTaj4J9g9hw_iINZUZiNnuyTiRfJyJu_5pyXYARB33Z0"; e_clientaddr="AcNbF5G-ztWUwT3uBsenWukd2FAavUBMsIABlhVTEAUPrGvgoLGtT-6m7j8Er59RtvVpZg6xl-i5s_Xj0qMQ6nuq1dv34aZ8nT02MGaeewqZWu6j"; e_upip="AcMenjMQvlJLL8fXLMxhTDtqceWZ-RYgfCHTkyvs3eOjaXqe_8IpzYvYmT1IA4-T5odviAfL-Cp05NhdaWaWVJXkKvXapojmWlVrclCDaA"; e_fb_zone="AcP1aO4MO2ZISi-8tqEg6rhABQwFUxo6XJ7UkTYsacy667mSUD18uFd9SU9NoFSF"; e_fb_twtaskhandle="AcPghBn36hg69Vioe2Q5oI_d3xiG483BrciFHi1HBErDA1foda3LS4Swi4u1_L_LGBi_bGA9nwrdoFtn_xnJBrlxGQHzPDvZ_Z9hslxZpfwg1Xk"; e_proxy="AcMZev3avEcoOUhjFH1wFIEEb6VAUPlqxkjYGvO9p7fT4B9R33P_5OF4SJED2S_s000KJwnZTP1CIpg51N7N", http_request_error; e_fb_vipaddr="AcOxkpBnFiAHZWLRzCjKsfiz37_T1Xi0Dol9Hsc7MaXhGxwryHCtcyrFrAqHW7w0UrJxHfgY"; e_clientaddr="AcNYXVF6mFRe9Y5Xj331SqE3Pytie68tDrn0Kugp8wXzYxbPtKlu3E_s3rtIBMm3-q02oFs9VpiYvXU9Q5o"; e_upip="AcP-HbZiSgRydXD3qrTs08DAAOO5gPN6fNDrP1nuG2VBj8Uh3QviXUEIrX346XwY-EWLpGbWC1Y_mO8X0NNA2Q83QTPbpA9wwec"; e_fb_zone="AcNo8q0FuaT4fjfCq5LRn_YwTdXg5KjTh2O52muUq6l0OjhMeKSWiRmcv5C78w"; e_fb_twtaskhandle="AcPvVNN-4fUL4qclFrCVjbFUIePyXg1VM8x4Cl9SBvkcHchM9_we2gU4fCYKM9E4bODPMH2b8spKwOviCk2g3J1YsOb3aTJQ8urz"; e_proxy="AcO60cNQr8cY4H1s48wssG-DbK8JkiDuH7q9d-ZZR6aHwZlU-iJXqS1jzP7im5lWOq3L_EcyXk-NuuQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=6, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=774, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-14\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1701:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:89:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-15T16:00:14.286Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1701:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:89:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-15\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 42,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 296544540,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 602329,
        Symbol(triggerId): 602327,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'x-fb-aed': '814',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 15-Apr-26 09:00:13 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ASG-kEs_fOwpDl-jIQ0m5oQ',
      'x-fb-trace-id': 'BPWrNDOKDH0',
      'x-fb-rev': '1037385434',
      'x-fb-debug': 'zTc8zxq6RELn34vJwVv8bKOBryyLTciG5DXE4F2gb5REp41jixXDkt1H3TsPcby5JefpFhcfgDNSYIZ6uElkOA==',
      date: 'Wed, 15 Apr 2026 16:00:13 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcMHnX8EyxAAaE6e1nUcNmd-73QkCzu4hDAJUhRLbAxr185sZLEunsJcG-0a0lx1ntSpPEg0Z38JlOavbK8Ch1ojHdzIRJRaG4A"; e_clientaddr="AcNR8l9Go1UQzTVhin5IfWmIa4HOJL_R1x3gfJ-t8e3euhIK61ZSPcHxBpTfJc0_fWbyRK2MK1S6ESlm1jVjhdD3vPfxF9_7b7mPG520kElKWYca"; e_upip="AcN-MkXUSUSTd8jTxze8nUFOJxY9sZtYd_PxiSt59Y9Z4e5e_WkRztCliZtj11Pis4Gva0hddZiZ-odKAlcHz_BGwS6sOaAqkDl-JWB2LaU"; e_fb_zone="AcNub6rN08cNmb8QX6nQJM6MZRvki8znyWZ2Ku2ngJ1aDAOTpsmAmsXcOHOdGYeQ"; e_fb_twtaskhandle="AcMbRFOSS7z3P6UAjXgsfzTq5_PMQgnbwcxu29oaPoP8tFEACG1YrfwfG-MmayVprar_gy-FXVFAbjR4Q4H34sGiTJr0TR8-HRM4_IZmGqBz7_0"; e_proxy="AcP5ZcAuL4f1MSmQOVVZsOnHvu-gNGoaqV02F5gEUVPGTC09VIzlQHS-vm4XO8n2KQi3D3E3ScxsLR6MacSB", http_request_error; e_fb_vipaddr="AcPcNPILy9D2Z2xgouFs6AWHCj7J91-SK_5cxgyBYEvEqP4h9D5bHT436qc9DSYt1FFFtFzs"; e_clientaddr="AcPcY7tN6VoUPMykQrNQuANGS6ykJ7ZlbKX6oh6PN2_879Pzkd8SNL8QftDELqEjkLYTGWj325U2pWLw88Y"; e_upip="AcNmc5zztFo1q4azV7JfHQE-L1hgnmJnrGqc5Y93dKqu2XDYYxLR-2sAQsBTxCMWZxiHx5HpxNP5KLUtAwISMYSu5mCKATuwMa8"; e_fb_zone="AcM7vu4RkgiALtSU3-SUgDhk2aDr_MK-VHvhEJ4EteTEJ9129LUtxH1zmjecSQ"; e_fb_twtaskhandle="AcOWrzt7l_Lu9peSF4ZDBRivltW32G3zYebzDpN2MYm8e9VdU21a1UYqUKTmWppEvKXfaAip1dBdJp50qvAvvk4nAronhQXCtoOo"; e_proxy="AcNFTfkmMr317ecoH4XITCLcsmHZzWV9o7HIKdYmwogJpv045MwprarmlbVa7bdsNjThjN3E2_iPKFM"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=7, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=772, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-15\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1701:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:89:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-16T16:00:07.349Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1701:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:89:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-16\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 42,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 382939140,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 773366,
        Symbol(triggerId): 773364,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'x-fb-aed': '814',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 16-Apr-26 09:00:07 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AObK6JghI9HAJSuGGNItVMS',
      'x-fb-trace-id': 'FaUhPElAt1+',
      'x-fb-rev': '1037483230',
      'x-fb-debug': 'OEyk/7VPLEfwW7j0GNnRYvVW25h40LMVYyUxhARkP7r+RgPHLBifgZjoExz9w6rfKJaRQngA4pD9QecKgMDHOQ==',
      date: 'Thu, 16 Apr 2026 16:00:07 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcO0AbOEPKSiNW9ZqSXJFNpPFt4gNVXx8O8dkWpOawOFk8Sf8qhHZLkyoweasUfGEPfQvyJTdQ3R4B3-2sc7ZI90mOOwX4SBsUw"; e_clientaddr="AcMRQ23qmlx4zQbVD3HDhS8R8PIpZgqVI4HkinLwCEGctIERPSF7clrUcf4OxzSXiiU-ammVcBMcYsCeiY9Ck6KfhpO4YgCc3ujMUMBIV1KROY1Q0Q"; e_upip="AcMJxQBXrUugFn4gUFbNFmqO_oH_SUy6ynxlYsHlVFSiju5zQ1Y3LPN5X6c0A9yV0Lh_SZba24jbKIDpMF20uPAlXIjloi_iIOT3cZt7pQU"; e_fb_zone="AcOQ29rCbABA6zB48fFiUbVzVYS-bnDZ2hIlH5yCkd1Sw_8qF1uv6tiQDXmDM3Wl"; e_fb_twtaskhandle="AcN2ILmf1UKm_lxTNq4dyQ9TfrGmPPVt3_lE5Ejir6oRHmRkUeVJY4569UbwEgFC9Y57hdwqRd1YNtD9eBiQ0sAdLowojAE15qiJY1TNH5zMgA"; e_proxy="AcNithbM66RVr_bAUDC2UbrTipgiMnliL4L4KdMUUByui8DcrkCK1LqePqD049yZgqA8ip2B4sj4Xz845BlE", http_request_error; e_fb_vipaddr="AcPHjVmhSJWehdVN1pFPGerVfn9wLVKdoyWzlGtn_kUvEPK6nzk1cgycx_SZ4kaV0eeInEUN"; e_clientaddr="AcNlp34VSPwF0CWpcmIGDGGDZXhbCxNSA-CN9lleEyWUa2SkcFUDfYGHxyZmJL9CKwnsXgc6BGv4ckzDPaw"; e_upip="AcM9OStI--F3Cj4GWsa7ykjMGeT5XxEDuUAoUQb1bse9450BQ9x3GfM9WxC1BC-FDoEALZsF5hOP1knNXfAAPzrSp-0deqIofSI"; e_fb_zone="AcO4d-qij9XAggRUgIWw_Bjv2bUynvvqP40Nf4SiUxTm9wa1gKAtLcqbM6729w"; e_fb_twtaskhandle="AcNcDXH3KXW8cGPvmLrrJdxuea8udINIkFlwP0OsS2dRHS4ArbAlL-rW89JmDL-wHf2IXI8tR7eVV7OkmMDeTXrlMlcqbwscXYs"; e_proxy="AcNixR2ROa8eZTw776OP-UdK2AnfxwYjku66ugfwMlCfmD5er7MIZgl_r7OEzekmZGppV8SVTbH7P20"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=6, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=764, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-16\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1701:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:89:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-17T16:00:06.934Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1701:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:89:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-17\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 42,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 469339843,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 945833,
        Symbol(triggerId): 945831,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'x-fb-aed': '818',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 17-Apr-26 09:00:07 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'Ag4soSLd4tYOLcTOtsaHfJF',
      'x-fb-trace-id': 'F7tgqxsyz8p',
      'x-fb-rev': '1037565860',
      'x-fb-debug': 'RmUPyVxl1bQnAYFTHPNogvvwEIUrSa35PGP0kfKoKk2oT6tiIyzJSnuvlSpqkX4sZwGJ0EcuPcw7KZosGO4q2Q==',
      date: 'Fri, 17 Apr 2026 16:00:07 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcMBXMSComJaHWtwdO1KqSvbOFE-i_QC0f7cnKCql6bimaS40ctxhQtWGKPigpOu-pakxSKtVn-8sb5H7diwDL7gWvtE3Nt6MbQ"; e_clientaddr="AcN1WA6fLdHNTxBPtd3NT97aJt2qZqRW0FG49LcGR2xAWMSKlAMML41avvUR4XJpC0Uv0IynyAVnPPWVq_hoacfFJnFMYxe9zrqk01Xy-r-XsXxwcQ"; e_upip="AcORJelLoDSNSh-Lq6MrVlMOdmfGEwSUOtHn0DnY4p33H42C6kzoiR-ERFu0T0pVdvypxa_Z8CQ1Fz9TlM1UCKbh7UbkNMlmr7Obz8zgvSM"; e_fb_zone="AcMzc6JPt7V9CHYvVeazg-TS8w051hpollSuUcGGwj6wvU4XwRBdjvgkWTjttZQi"; e_fb_twtaskhandle="AcOucOUD_Z9bTi-itSEtfT0FLmguBglOYrpmgY5W9jCin_m4xZDxssIyPRLCf3cuzBDz_kEGakUUN-KnwlRhItbVF2JRG8UkMtnWr2LOz0GOLfA"; e_proxy="AcOx-Cv0UzOpuofVKrAT1y0TLWG5AW4StF_vIX2DLeBeti2MaiJe4W96VdvQ6yj40TaAh0PXCMyh5oNZkdQu", http_request_error; e_fb_vipaddr="AcMWxuVn8EPRM9wdB65Si7BaXmtTzxwkyBsA4VI0qyXPrF1SX0b5Zzt6Vu6JJQDV9AOwu5o9"; e_clientaddr="AcNbRH7gWtiEdz8IRjKSiDoXayL5hwbLD3IcIrW2mAif5_r1IJJQDUttbg1Kn0Mr7FjuLQoFJ9StAMk-_V4"; e_upip="AcODGYPnO_Ya7f9j7IeDOKP6d7Kvw9OnjFt5LpJ3zSPbI2g1Yu90Q6ZBuzHOVp2T0Zchwy4w_kNeQcqSmK_v7dmCNGhcGPWYz_A"; e_fb_zone="AcM48mGXOVyOk2G6IJCxRmX4bWuneL8RmR2ynnKHigdJRG1Q2bspkrStHIZzzg"; e_fb_twtaskhandle="AcP3xT0VNtNt31cVGfUBr8QM6FxIQPvzNJTsugFvSFwJNqQiWP_Vvjp3qGo3blBiGQcLDEg8nFIoc_omTIWzTChF9Yku-eYj8o-q"; e_proxy="AcMkJGzOhfaX_i7O7Cjyovw5T7RPCZO0e_09u-AInF8RFnKIU-RR2RuIFzaF6nILGx6i-pZBk7vbkIM"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=7, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=793, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-17\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1701:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:89:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-18T16:00:07.543Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1701:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:89:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-18\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 42,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 555740440,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1116827,
        Symbol(triggerId): 1116825,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'x-fb-aed': '820',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 18-Apr-26 09:00:06 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AgSA9da-j3czQ4pUK8p8rTG',
      'x-fb-trace-id': 'BDyO+QOGPBT',
      'x-fb-rev': '1037644188',
      'x-fb-debug': '4yG9/0D81eQQVl1apj4Njrdt75NJrfvy1wTNdHubeCWXT8jIzV5rPI1rvrsYRMRaJB6A6nv7bEO69hOZ3QgsVw==',
      date: 'Sat, 18 Apr 2026 16:00:06 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcPZkjYqKlhK6fmrkr8QFHlVC0bOvZERUUMw4LbehKUHrJqn3g_TDQPyrLqzH2-vXGvmk5p4-2Ht9FeMDwrOjpiChqZ1ZlefMOc"; e_clientaddr="AcPXLanP1KVT1EoVfCXRc9eW1_XKsjoIDGZ5dZKOLmtoWk3bDZLRoGtak3eG2_F4MuEyWRvEWHVNRFNROgB9h7YGK0qf_T87czke42opABticINETg"; e_upip="AcP15aEmZGjxckJvDstAOvl4D_qjvbBV0gbg-NYUJI5MW7RpbCk8CWI2RNjdkh9fCd5WB7-CnKw1NAGxAswSEvwGrJVhuM2k1U7B6HNR2Bc"; e_fb_zone="AcPH5zREk2_ZMbrPE11LRludhFqhIAqSjp-CA2zgo9dSIuFS0qkqHpqEJ-hFs0Y7"; e_fb_twtaskhandle="AcNfQgdtKM8El7snfOoPsn7gIqPFyLSfeA_biNV6zV5tOG7OfCsgxtP4b5gmbCMos2klvaSTfbtJ7LEim0abOuN5sQFQpMCTMoNH0mtlYEp6bYs"; e_proxy="AcPMp2rrSuF8hv2k3a8z1iRn5tyRLmJnobVLu7bRVPNvZf5iIPIGYWn6S0pd2SpsJF0HmqAraflLE422nMAZ", http_request_error; e_fb_vipaddr="AcNbtAtqfwvAfLshmaMGibO4KIvffAPu6Gb_QwGY_Bgue78vxOCaTzJMBZu28RHsX2zUBuCR"; e_clientaddr="AcPVXTOr5f26H9uqJuPjrCrigKMb-ffQGplYhTBR4-TZePSsPyv6NmYbvJfm131BE9V-i0SBGDMOAkH_qBU"; e_upip="AcMAMGg44uOQeOO4v3FGcXlZEfh0jbJ2OfqGYJxgHYJxKPK5ycmWp1T19znyRuZWFPSpeOlu034lSicNZQnIfPFVGTtjKrfKoQM"; e_fb_zone="AcO0pRLPoeGAfcEpUgSsIFq8X0QvxfCHu3ptx127guK7r9LeV4iY0zqdLTnjlA"; e_fb_twtaskhandle="AcN0zwJfioCVHMOtdwOVWEB-4J_jsgke7Ar6wbLdHOgJAJCYJd4urCj9cNR1OIACdfkKqkoaMqemB0WKV_ODRRVg-sLdJsjM6vj6"; e_proxy="AcPPVuEqTc40MssjXiGW0mUqn-YwziS2-EXfa6XwU7fJEg-IF2pTr7Ello1bm1x9SjKxKg2f-SoDCtA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=803, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-18\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:559:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:510:3)
    at Readable.push (node:internal/streams/readable:390:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1701:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:89:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-19T16:00:06.575Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1701:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:89:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-19\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 42,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 642141041,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1289525,
        Symbol(triggerId): 1289523,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'x-fb-aed': '822',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 19-Apr-26 09:00:06 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'Adzmzl5PLcWLBNxWTylREqe',
      'x-fb-trace-id': 'A1HdVci8+VZ',
      'x-fb-rev': '1037662783',
      'x-fb-debug': 'gxCovhFi4CMOy8e6r2jwKz8IINfERoa/rOmYiMRHHW3QAo993V0FKxxiW8BFWGGkiZowf8Qi3YzVS7nNSojhCA==',
      date: 'Sun, 19 Apr 2026 16:00:06 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcMgf8jLt8Bkn5IWCoSDG5NDonaRdswbL-YVeCSRG1OtruGVBSPmpIv4BQdZ469iTEINYp5jIaKC0e0C94fNiTbbwxCEYHKQvK4"; e_clientaddr="AcNNGK5SPDumGFqJo3CjaVXfODaXaAjdPwIJjy-RPIjB6o3pHLhJNL3wVoJH2d5ql0OZ_dxtkFJqmpwCk3rqXG7X9dUCkE0DQjQwSkh0h-5ACKOyeQ"; e_upip="AcMbd6_-BJ3E_0MyUxNsLG-oZVOXROU2Il1aywj0KVyVcKueGhcklq5C3qUo17VO-WxhoQbDs47tGfpmkXjjnh9uSbUVUgm3VOP1T4SaDlc"; e_fb_zone="AcMb-CQxG6AmdWhp1llYE0H8zjJYNyrK9f-Cw5AB2LL5x7cumG1_0U95FXM9NVON"; e_fb_twtaskhandle="AcMoVTpRFx6VsnyEAG2P5lRcXDCGmvNkjpeBRp3BXVZVKr5ZQKEMp1BVrg17EouRtS8kTL1-Yvwnu_uqNdFSKpxED5BWpSFzlaNLMGN4qVkbihE"; e_proxy="AcPFkG4N0Ltjp8lzwRuzAUVMpe_OZOpgWBE7hZj70wviHmhfNhZEXQMfASTVasTqi7VcTsVtrpUlFbL2eGLD", http_request_error; e_fb_vipaddr="AcOcpWL7ITNoT5j9s6jgqTFun0m6mkaatr18J7Bb6RxudcC0xG70ZtZpYjtM6IPx0njaPkiz"; e_clientaddr="AcO9B58B54swz0uso9Wpmi94quT-t_HgYeFDduCYoDO_wUse5ag90vYN_ITEnba5AsF_XgImWpzqh_8prfw"; e_upip="AcOjJcYcOzmhyaDlcpN1LT09tZcSubHf5FXKXaznsq0sT1VLsu92H2CH51jFwyk2Dbm_b7BDH26q4fOhWSCxKz7sH2xQ6ZFniwg"; e_fb_zone="AcP97XH5I8Q_Pl6qpTDvqgmf17RovvtuXp4MozarUDnWiXEa81s9LCQcGp2wNQ"; e_fb_twtaskhandle="AcMOqEh02ngW05ZZN-mwmGFJlYZiyTDIeAK4qyFDQM9qiPU2Bm081WnuWkGNLiqP9OOzApQ28Z_Uzj7CKp66-uv34lbTFB9aweKc"; e_proxy="AcPGTB0LeWUrUksLTBMpBNli2mxKCyeVgoQlANeO51ilr2XRKNt93aD5bAdRQxE4AM7ZFipRciLwqAc"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=771, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-19\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-20T16:00:01.332Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-20\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 42,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 69192843,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 138540,
        Symbol(triggerId): 138538,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'x-fb-aed': '822',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 20-Apr-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AOWF5EPzcQpduRFAyplL9QA',
      'x-fb-trace-id': 'A4r0wCcjrCk',
      'x-fb-rev': '1037689270',
      'x-fb-debug': '2zrQQGe/JTX//6CjPzcY2SN74qAQqDhx6ffvKHSSXV/LPbOr46PDU+O3sdm65OkzPF0SL48U7WsGc5mVOwptBg==',
      date: 'Mon, 20 Apr 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcMDx4uzAGC2iifRbV7H10dR5rOVk23tmHanEHgb1pwdUlImxZwyyDnxv4gjArGbNTu8_j-m9OmVvJjRISXavoAa_vzK5WBvcEk"; e_clientaddr="AcN2lS1o9XNnONG7I1YbYyoEOAlzcDc60h5fjBrmgyuaJUCTYB_82DIVKLYH3QZwRpvmIR_vfTNRQHpdpHj6J2JLoSflhe4TYIPJU2jVL496LcvHnw"; e_upip="AcPfbgj0nu5R--hCV5dkp5-APyRE8_xWvEWlxS17Qrax6R55KSWnBLsPqw6mGiU064N8eGouSW7p1xz2l9BO5s6HHiXOjtBJQFgu4r3K"; e_fb_zone="AcOVBPMmbmethBCpvZ1HZqnBwYqcoSR8tZFBkadWF-nOa5JoHOcbAe1WAe1J6oMO"; e_fb_twtaskhandle="AcPI0WGG6rrOo4WoIVbWlU75bD1dXyiePKVdeIrZ1-R5tDoYu_Jr96wJ6wsxq87HF-l9Smp8mgc3YNWIWN2QaA553umoxxp8ki0saYdP5qd5"; e_proxy="AcMBVdFyqjxeA1MS35rQfnYETNX8sBWofqOfHHnQUpgVp3hykLtYhiFC4inMmp7pEiuBebC7hpdygcy2zpw8", http_request_error; e_fb_vipaddr="AcMA5ynKKIvWt8wRayvfAH5TcAHEjJ9MoO4yOuRtN5J1sUVLFPgmKgsxc84SeXE5bXCA6Xvn"; e_clientaddr="AcPxSSe1Y5xj3pKGb1mZ0jZEkIWsZfjttJFWgUX-wuuBY9aTpsP8xgb7-J1Fq4bzR3XIyD9vdDTK40ZTVv4"; e_upip="AcNvY6i36UF2ChlY2c7psuVTL0yc8LSmn9Awk012_DdJ96kia8Mfl12xRmQzeCjbvpRL1nnWEMNKtercrL75HiyWr0zuUBrYPOw"; e_fb_zone="AcMRZMU0y0yHtDiJxZ3AI9HiK9B4vw-S3x-g2up9uTFEasE097uKS6-Xbr3yjA"; e_fb_twtaskhandle="AcMzA7cvxrmAWF2LZEhJ-94rfKoMYzxrFB12hsEQH7akTfJB3UuBYEmqqurs_cPD9JXCqKaqCXf6Q5XMmHhcY3gPfQt4ohD66MTX"; e_proxy="AcP6zBb_GEnrA7JGVYbQUlOO5yHYaNPZCimBzx7m08CBskZ6EIamvFntHyOEz_hHUi0O1bOIwYeaGOk"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=770, ullat=2',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-20\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-20T16:00:01.377Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-20\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 42,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 51231865,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 108364,
        Symbol(triggerId): 108362,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'x-fb-aed': '822',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 20-Apr-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ASepHwvB-PQaLVd2AvZyDkO',
      'x-fb-trace-id': 'AcGL8vmtd70',
      'x-fb-rev': '1037689270',
      'x-fb-debug': '/yyIxItUgd24a+FvEPhccEQ1D+UKV7ad+X4eoBhOVCQyZxbFN5gR8AUjQApqUT8iBqNG0rClMYYB7Z2+AHGPgA==',
      date: 'Mon, 20 Apr 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcOnzEDnIt5bZFR5JsEkk5rh_YMBrU7j7QRomBTCH9Q3ihjqLR8nC-uk1qIPKaS0Hdh2hX2-n5gsgC74wZGNOfVk8Fn0TDasEhU"; e_clientaddr="AcPaJNT8UDCDifj3UVpxCK3d0RxRT18M9SV7Fhv1lUWqEXn1eDvAca1HLvShLIdvVpD-OHP6954toToHdSHGSRRC5mBtkLtuMBr8ak-PYnlpdgdP6Q"; e_upip="AcOb8Mcc2SJxd0gQ_YMmc98AaUQSKoX5xFU1Je4_5doeO5gg5aBCFexahynB5Tt78505mToklNfV64Or_sNtSJYEgvPxzTklt7NEj308d1k"; e_fb_zone="AcP1XvPjdhNrKLdR_4OJ1yEQb987hdM3m4LomCyWBGh3EGv1sQ0x0lOZ-3gZbTo0"; e_fb_twtaskhandle="AcM1VH1hLl0iHjB7emINIdCpvjIgq158h7iF469MSUvU-H3XRgznp5kGwZdZQSQnrzZ24qmz_0vZwNJt4wj-C5UJktyS9WsMsjGcIY7DeTaXSJE"; e_proxy="AcMP1vJtB0wnGQbGDPzetpu9HFMO8AQXt4rpkYOcn4ZUkJMhRTmhKTLTsyvYbA-IzqsQc_pOw9XWZoNlqjoL", http_request_error; e_fb_vipaddr="AcM_MbewznmQYvHL3UJglPM1mpNI3__2Xaw_Wxq14cx42n0EEk6FGIzFkifsCxkcRhauiBrl"; e_clientaddr="AcOBeHcMD9f85kPjpEnbdswOmITOLY3Og6wQ92814uNTjRamdWgkv1uqDVXV3uF6MLOBsdDHMI-LwZcE56I"; e_upip="AcPd3yRxcsdGjI1c7pH3PA9Kw9qiMS0GxHqurV15fMJITr5rmxc9aouuIze_yfmeA59osrUwHgF3Z1E9pEKkc4GM8Jo_mL0XvdA"; e_fb_zone="AcNUctpJBA2gNP8RNc0Zbwrl1TbeyWCca0uV9q_lR6VhGjq6Cc4Jatf6Pdn0Tg"; e_fb_twtaskhandle="AcO9fcG8jHXWGI50mnb7FXYpZFbbga6k5heSyiN4IQfxJJ5mbz8SyXlH7XSTRDY3i38rY9KGoCGVHiJRFMef7sC3M3RSw4OWtsJr"; e_proxy="AcONxBV_GPasEYjYGzXSowg9aUKMoKGmGnoDFFlrDl-z4pkIeGHuIBWXb3jJrz4H1Tnml1WjtvslAy4"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=768, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-20\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-21T16:00:00.976Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-21\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 42,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 137631829,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 283503,
        Symbol(triggerId): 283501,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'x-fb-aed': '823',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 21-Apr-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AviolhcEFHF2g36cO_YL1Kw',
      'x-fb-trace-id': 'Ao55jNRNSE6',
      'x-fb-rev': '1037793778',
      'x-fb-debug': 'jUQYnryg2WdX+/FzRLDfLR7LW63omo61Fyz+JfTjGqoK5Bh4Cl8ZcQrK9jIw/53gBE8frE2M+3Ntkq2zxqCU2w==',
      date: 'Tue, 21 Apr 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcPSUXgQsK8bEFzAC4E9Ab6JzqNsMWbW0vaKpL4Qd-dpWeZsnP0T4qhX2-ZjrRWy_NIRqKllW0jFvGCmZhCpTN6y8SvnMnnnIVM"; e_clientaddr="AcOwHQDUbwaP5pv53Smd4tc2TyK_BP8PyqDQ2Uejk_WaFfBg7GbCB26e6TCaQOVhER95Rj0PNHVfrqmlAQyLfeQ8VPLZomI-I3pSMBseqr-I3lDxVw"; e_upip="AcPDTCHlh6Y71j2OGPtw4PPUJgL4Mug69W-9XHS4osdBpow4U7p3wr1VvLNG4GYB8LIaVohYsUwFyyKEhurIc2kggOBk7jmw9wRLrWzuNnc"; e_fb_zone="AcP3KEGvNbt2l5Wti4GMZHTL6pwE9LxMUhV1LT5zC2gQ_oZcZuvQR3Tgc4Eem4qd"; e_fb_twtaskhandle="AcO2LEyffEg5fGpzw2KP7df0b3SQGHbN4ixiBZ2_bQPhkQ_0rW5WSqxNjjMrYT9xWJXLz2ikp05LdUM2RSQZCYlC8_bgZxjFrnJ6zFyI5SRSIvk"; e_proxy="AcPEHT5ZR90C3L7CN67Kbqimez40UCkQxoXul4461V84KoRvoW3TmU3Q_TEjBtoPQhHy9dhR8A5jZBbxgW-T", http_request_error; e_fb_vipaddr="AcPC1ELquyU08biK-MPk7AceFKjXz-f7d6X9ZTL3PshfohrpBGpKkLrcz5OCpJfw_dbzMuHm"; e_clientaddr="AcPbUobHIfMpVKwqd1jwSCFxeP2ovml1fSTIje5fFU55vPilMlyB1sKZf-kDCkDhXcejarCMfNLbFbGK2yI"; e_upip="AcNLZvJd5n9r34118vbDmbBi9J0XDJ8qlf8tM4mBrNrk65WUw7foFebNIxu6uZ_OYXd0IomQ_-ySCDYGi9gb5d8UGnzkAajqyeQ"; e_fb_zone="AcMwmRRYdH5jptMzBQhfej3TqtaeCUI9n64q_dBY3xSECSVr81umMMK9dkBxvw"; e_fb_twtaskhandle="AcNbqXbNxMHgFcN-pAYl2s3pZcfvJCVXcenkOi_F7mjxGtoCl3nIDc_xXxQlMf9-xUgnXI6Oemh45qbEm0Y5krF0qwIhq14lrW5i"; e_proxy="AcP1JdOMm1yCyIaNVnKave_8mWvP6oPlH5fbwiMGw_ddbItEgruVkKUWNloWcutgeol8mwLmFeZA2VY"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=849, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-21\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-21T16:00:01.013Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-21\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 42,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 155592888,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 311542,
        Symbol(triggerId): 311540,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'x-fb-aed': '823',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 21-Apr-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AFiwEEjD4XJLV1vRfujDVud',
      'x-fb-trace-id': 'B7webvH91Cq',
      'x-fb-rev': '1037793778',
      'x-fb-debug': 'OR8+Iyx4VLcMkJy6fZULc+23Z0eu5hRqLUQFxsVq/k5b770ccMTXY0OfiMe9WPPN58NZxSUcCzZQZnulaDNo9Q==',
      date: 'Tue, 21 Apr 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcO8NB4USSXS5kVE9M8nNUI35RnWSooQ1gL9VP75VKfdZX2lRrUFumjRVyIPWEaN0BjYfMgwu6tySIq0FqjHtLxRFQnzProkcj8"; e_clientaddr="AcN3EL4LShoqLa0YiOUdFwjWFTk22Sk5dLgW6NmHS9NPLsrX_6auVVVh2-Dmx84Ctq8LD18PEl3kHa0pavDqUu28iG1rAI-7pYha3yeBBw9khVva"; e_upip="AcN5iqkdTP1bpxHUfLw1YLVI6PCi4JrMKpMV7mHiAqwehU3X5ESw9pc7tvyoQbEjNHwHfTbRkHDwQ2u9h6qqAZH3SZGWjGuMITK839MhqNw"; e_fb_zone="AcMsPFdv0cry122yxpPWP9C0URrU0Ot9rxuJ_2dOXf-oVwf6mE0Y6VRbV55T8eM9"; e_fb_twtaskhandle="AcMaCFpiEuDMDGg546hhl79GtllAGWPu81DHKWRBUQw5rRVEPndIaZFAQd0YDYsRlUChF17PAWhuDmdYeSVCfDStlSD-4okKtjZqI1OGeG7mki0"; e_proxy="AcMLpdc1ETLaPEeF6pJHK-HKgeiWfVs9wDs5rErYrGhRdbdWB-mohC406QV7Y5YbkEhilRX11j4xx2N68mvY", http_request_error; e_fb_vipaddr="AcMHSrvd-bEAYRvrzWJnEpa2Mf1lA2Tm-lNsqZP3VEhNByRr6ikpwhvy03-G9bB1MS4_o6KZ"; e_clientaddr="AcN_5-5EJjJoKGSpG8lAK1PIPiCog5kIDh9scw9eYfAAX4j_-I8SdAR9vF2JMrOlwvI_xlQMfE1iFnaXCx0"; e_upip="AcMvsFRe24MXzO4tPBzNX9g5RgBhwWtRAcaJv_V-KykBVfOu-cHdUsvSEsiIOszBbx72KaWK6xo2tLJUT0oFuvrqulp_Ie34SJc"; e_fb_zone="AcPVXHYDcU7mhVO-3wfhmaz0NGSOcguD2sOSHS-V-QC9z32-Npaixgy3iXntHA"; e_fb_twtaskhandle="AcPumy2RdzcZkwg1ExcqMal144wGgt7tZ1TFXdWHbbEpmS0UyZvTazK6_S-7dBB0beVo62yj6t52Wa_mukpTg33lLlwRM1ZwtLBR"; e_proxy="AcPEgaUbdx4M5pmbK29eCpOhiDJqTMthyQephL4G9WeLjKvuenxOGiNVBgHTNEbBkGn1JisDvlPcepc"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=767, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-21\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-22T16:00:03.352Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-22\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 42,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 241996399,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 484362,
        Symbol(triggerId): 484360,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'x-fb-aed': '823',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 22-Apr-26 09:00:02 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ADGnZJOIu7pCeKGRlCJO6D3',
      'x-fb-trace-id': 'GMJ0tGCxEKB',
      'x-fb-rev': '1037887548',
      'x-fb-debug': 'moyNwjCegPXypu7TUpiiZuI7DVACJ2al1/lvPAikJyrZKPXbs8p7lRQ1IaYueU6xRfSVa3+QZLRjexyw2nqQzA==',
      date: 'Wed, 22 Apr 2026 16:00:02 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcOsEiB31LdbP9JEzmS_OKkVoAL9CwtI4rdoV0Gf01aayDA9SN90vgx_OMOtryPQViBcUIMy7Gq3-ghlFXjZrhNe8j-yDFGLOQ"; e_clientaddr="AcPzfadKYHbuCk7xyyGLj8bFhVbz88cbbK3GLsqsuluWXdyobKkQD7DSJPH1ZYQct6jjrcVF_9HDUritkREkmeA5YU7kWEdqVq0vzWSAzaEVeN0y"; e_upip="AcPkvmtBI8Dy4E0b3XCokSt5MZ_GDLDql5zC9lYK7AlU8cV7tZPbXZCD9sJupDHXhhXC8By1oyZkFmA_QUtpSoEwb4qk8bisM64VnpBHMLY"; e_fb_zone="AcM9FjxXYt8nr5wDc0IE4Uf5XPH9hfJ6u57FwC7EEzmTN16YFDT2CqjjM9vZqrr1"; e_fb_twtaskhandle="AcO2Ce9Bfoi-sWKtUFTn12ottHVeC-dwO7Yc7BYoMuLMOFgE9VVbIc5zITWFN2n4IVU9KUxdBYVKXiwydAghzzxxBmNYMXb6g8nucdxxGpcWiR4"; e_proxy="AcPVXMn7tiPmY099sWH8KLnZ1pbujh-CUHtpwxmuNVYFfE1PQmR3ic28szZ3RIYUQMddqe1AsBEe5UQimRk", http_request_error; e_fb_vipaddr="AcTLCBZAqKr3QlpPedV3mqcMkIYLIRTJZXjQwVOTZqTgBmFFnrMRYGo7-ef5ZPMBPb16t6BL"; e_clientaddr="AcT5gRXK1GR-jyggpvF8WesV-HssfHQaktGMWS3_KVHcCVDQvmnYmQCzMWo0futubIgfXdEmCM3YKUY3jhk"; e_upip="AcTV9UFnqcq7XvkaCsrbdgeftMwomd2jbWu-zNzH-CwppUufH8kTCAIP4iLLQ1ncXpauuB4tVGWytaPkimOl-ICAfS2Obxd93w"; e_fb_zone="AcS-KVeu5iVXmFUWu3gPNDDS6ybYyUuhwjQY7eYQy2VW-8tPYMzHxfUpZjavjw"; e_fb_twtaskhandle="AcTXjEXl6YwdrvPjklxq2QmgLCF25i-M5uplIkQz4Z3EBCEU_2lgL2B1w0GYb8owhTL9ZDBHUGAMUo-kDKBA9iqHFTg2gJ7W1g"; e_proxy="AcTP9z1KP7v9QeRxnsASUEla7gz7CQc2ZSX5KPWITCLC37mZCldA6Q5gcY4pRSF4aPLHTH1eQOTbnmM"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=8, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=682, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-22\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-22T16:00:08.447Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-22\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 42,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 25200223,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 50727,
        Symbol(triggerId): 50725,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'x-fb-aed': '823',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 22-Apr-26 09:00:08 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AondVJ3t8uatY7f-x-Kr4MS',
      'x-fb-trace-id': 'Dq8CyY19rOc',
      'x-fb-rev': '1037887548',
      'x-fb-debug': 'wH/NUrd0rbvtxOnchprozcOLom1qJYInYexOyN5D8eNdygAa+2TqNy1kNu+k0/rG4IDUEz6ljCZ3zXNPfAgrUQ==',
      date: 'Wed, 22 Apr 2026 16:00:08 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcQgQ1xYlVo3QwkzmFreBgWZUZvgKUcM3bILv9F_FF_2TJOEgh7__znXsihVyF4Mt0SCnDk5TiNnboM7exAhsLMmjaU3UDkHhg"; e_clientaddr="AcSnbuDs2ff5iauCV2lTsq-Lg51uuh8SejmBXGUHxOwAcq8Q5YrhtGltxg1ywKXndZB2-TN9PV2rC2I83zxGjpop-xXa8t8jhRWG36bL0nalbtiYCg"; e_upip="AcRcJPLq5fPlzhzKzCex2JVopzbwUkYwR8278H6olPvQyK7c4bnLSHHACaLTgHvmuDTwC1tbMzjXRcdE7vnxCof-fK4SE3bAeQPeP5g2"; e_fb_zone="AcRtxjEbCha9G_MqPV5w06X85UYupsk29zrzxUTmLVzq00ChOy08YC1ZpXvYbk61"; e_fb_twtaskhandle="AcQnzLECZBkDbekFoJoZL0jkisMjK-8vT40pWxorPZLjPP_YT6zbOXl86L9sHR-EGNl30suVE4Cph5tqd41bEnvcUh7fQgJe7Db-pfpfDV8M9w"; e_proxy="AcQ1ztfC5Kww-aHCzUhKUXarFgJVR_psfx1WKQVMW2uNszG3E9U4xt8BMbinjzInTKVsoaXq_AalYKkDzXZo", http_request_error; e_fb_vipaddr="AcOj1DgKfqo_8iHG7qTcsIBHW3f7VLSm_3Ud9ZPqL6oPEO2D5hEtPFG2FL8C7vDyzc_a-gFc"; e_clientaddr="AcNjbSIYXcB7Mcy3nFiVEi-8cfDiUpUfLoYq4t-yeZyxQEVuT0xEnqDfonv84gH2YscH6E2QcWSq5RWmsA0"; e_upip="AcOWjj_5aqMejxqBIDFMi_Q1JZt0XCO6-Svv7bVKrmKVWkdqWNcX3TmJurbccH5108ZDbnYxVOm9eCwNws5PswOEyTBbk-l3CA"; e_fb_zone="AcPS3hlAm36DKZSEkAGqKMDdwdRw7XuwZ59bmqhdnu_2QjpangqUZoDwb9SDBQ"; e_fb_twtaskhandle="AcM7Z_nFcgNZ7VqP4-cQO93tN_cqdWgAa1G20U3WolDgtCYepBAHryD8iA36FCiyhdQmhn4UGQd_J_8aHTNdpSmWaj7NsiiJ3suH"; e_proxy="AcOHBxC13Yk_yEe5Ap5FjJDDqnYPBKGuUjM-DbZ0Lz_xEdG9MWp6LcMqcenvZqOt1YspuwZL8fVyzNU"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=750, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-22\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-23T16:00:01.183Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-23\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 42,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 71606658,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 143488,
        Symbol(triggerId): 143486,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'x-fb-aed': '830',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 23-Apr-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AqfF6p5IPHajdm_4lRM2xNU',
      'x-fb-trace-id': 'HmdNRedGyDJ',
      'x-fb-rev': '1037983312',
      'x-fb-debug': '0cvt50AMSR8Iwg+o8oko9VTy93dTRUZWovYps5Ti06c4wDzOFXcQCZNHxjiIIk5UvuiQ4RNH1jh/KNkj532uNA==',
      date: 'Thu, 23 Apr 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcTzDmMYdQWiAG2y6OL2pp-IhLygj322rGX5BaM3O7MvBtCHDxI1S4dU7pi7frahlPS--uGEMacNzyiD-XkXeXQtQqLoIO4XfyU"; e_clientaddr="AcQFxE5IXzSQwYH_J7EfDSj5Y-3WhwXxO-dKoqK7RXb7nUW8cW9t-E5cKT6uGflF-6CD-STy_lQWe5SEztI7_ga1Mk_XI2azvHnidFEzxV99nZlMVQ"; e_upip="AcQTJrvMV6blfURdfVxQipYaQVgM-GVhaogjevnt5ocbP4btnOFn5PTD7JwkNh9dbbVXuwa13tVvMaTpOHpTI0GRxHcVngFbDAOXEsRjIrE"; e_fb_zone="AcQLimv0qviaHwJC9u6qSJ12uZIR6RWsDBmpmwbooSCdmC7O7mLZwZD64Izn2KuS"; e_fb_twtaskhandle="AcSu9sZyKdM35b3n_6eyhram4C7VY2WB5Jws8cOPf5W9Hev1Lefi6DoenKluy1XD95KXJdCUR8Cut1BlNvN4020yPFk-wTEpzRenPOYv9SKxo90"; e_proxy="AcQgY2LQwkfCEdwPnA50mZS6igUPQuGm_xgzFjnnRQ7I_HSU7bK3BZLglVvmpRwXs9TWfLhw5VlhdKMiJzg4", http_request_error; e_fb_vipaddr="AcR4EFnhq4uW33iuhuPCAG9lJcW9tCZ5CHweTPCtutxbpRa15BVC7YyWq60pRfluWy-gYwps"; e_clientaddr="AcSKvmbI8hNvZCOi29PbnVumtS1QQ4xyGWi5L8OwrXj4BW85f-G6nSQajEJSGLaWvJAsTYj7kQMcFzp7jSw"; e_upip="AcRMs7YtXvI2BSsKDgHhaoY66DfaYFTjXAivLfdw3OP-GWLPzuNS8CMx903DthvFHiIG0gfNyGvyFHM5VeTmOji0-DjhlZXmmkg"; e_fb_zone="AcTkc-YPuxxECJLwZ1X2Cok3aMgVkUoTmmJ5i8tPgqdLjWBW9mQFkOS-hCnaug"; e_fb_twtaskhandle="AcQoorTSlnXSpO8Rddttqjc2ZfiEJaxyc46ymFGcRIyGiyDi4aEE59bX0ORraoBFJPAHbOqStAcFFEZ773pjzi1cnT0y_IBYGHKh"; e_proxy="AcQWRGmXMsbg7zrzorSorp0jgq_v6Rusr9JJYPDs_XNd8XZ1eozOuxWuYkFqScqO6FNkcoA9zBHIW7Y"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=888, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-23\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-23T16:00:01.351Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-23\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 42,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 111594063,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 225819,
        Symbol(triggerId): 225817,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'x-fb-aed': '830',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 23-Apr-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AiJiIvGzg1Nx4kIVYR9y47D',
      'x-fb-trace-id': 'CnN00YGHZga',
      'x-fb-rev': '1037983312',
      'x-fb-debug': 'MVtwEAK/nRKeFuAUdxWer3oVdpNi74ABFGFcKtfU3lmIclUdBc7DxEv9LZ+ya9Pbwpxok99mmNEQ2x2lQ/eshA==',
      date: 'Thu, 23 Apr 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcTo24rqOxkSBWvIendp6jCdfygzY2xLkL5NH4cJLvorzsByTV4vQWaJXc3rb_HRonZ_nFhtB-3LGAK8eZ1ytSaL_XwzzHdwcQk"; e_clientaddr="AcSPnkWAP2ycqgXMaPgzRSsmOO0GoUc4VR95etAyCQkdiA0DYWwNB9Wj91UPGqYCk8ql687yYT2deRaHu9mnLvhjJUUlKBFIRCUPGjivehcB8nw"; e_upip="AcQ8MiEsvBoeGo6mhhLd-eP_Fu073ff3Us8qYL-1bxp19qH57n-NkKPKFxOcm0XFPBFTBeN074xNz3C9Xk6I8PkNTRTmUyFbuvq_1gR1I0Y"; e_fb_zone="AcRDjQgaFdSSBjA2tHd3dV_9sdB-OnDBBBYjLGPs5-MvAeU9qRVA1agzY8FEduUP"; e_fb_twtaskhandle="AcQn2hWZU1Gi3txrSUWMPT00MKcUxvZXa7TtgXwSkwvJ19Krgcglt3XUeDG9HyXhHRkPIaIgkzfhO8-Anx5B3vqM4AeOj3HiNqP90GpF1viFbi4"; e_proxy="AcRcPxhvsvInaFzDFqPi5i3JZjnMnMrNC_FdLPV51trkQPbF-JGVNuXrBzzUBU3kP2Gs3YOWhodSwFGCAfvy", http_request_error; e_fb_vipaddr="AcST6u6tCvYs-ATa9gdzMtmb5mJ6dHDHV8AFsWAs5NH9izvIGfKJqqHGOFvfPOaxThqAIYiU"; e_clientaddr="AcTbmsHSTDhyTs7ncngty6Qg5rO8VRbCxy15WRTTB3bMX5Di2B1WhQZwSYD4M7-oFQtpvH__3QivjcRzQvY"; e_upip="AcTOp5lWyuE_V4xH2xmrHKwRDapbP8Ly1dZ8Q3htxCo292gzHpTUlhffUAa4nTIbbcsnWVZSiIPUh8IrL8f1n9tf_qPuOLGf_2Q"; e_fb_zone="AcSxE1WsLu1xJrGjO3Jb8Eru9HehMCY2FnkVFxWbNMFIuq6wi7Wbmx8xqlx2rQ"; e_fb_twtaskhandle="AcQXw2nriobtTFdh4LymtNW5Cz6mRreYL3v72t0P70EeQzYaUwi9oK9-5dEcyWd1uSsp-tQwrSaxmDjaMyrBQ8Qc5dAhuIx8EcLDeZA"; e_proxy="AcRlD5tATuWSx2Izk4FVtiTgTYxOoL4o-EvyVXbucFHnbCAcFF5fnVYIXQcAxzDzjdiCb97sI37R8NQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=13, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=754, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-23\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-24T16:00:02.686Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-24\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 42,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 158010094,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 315674,
        Symbol(triggerId): 315672,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'x-fb-aed': '832',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 24-Apr-26 09:00:03 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AY_YMpP_pIZK5sJJmTwDd8N',
      'x-fb-trace-id': 'FN+KZ8pw6Sb',
      'x-fb-rev': '1038079265',
      'x-fb-debug': 'HRzGf0LBQ5o7HBFXhzP7OPG2UPZ/cm/qGNg3AKwGSujeref0ZEoyMGYluWwBiJbhmDd00nyw3iZslcAi6Z9NPA==',
      date: 'Fri, 24 Apr 2026 16:00:03 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcTCFiN6URwfyIznowo38h1o2Gf9cW19Ps8Hx9WvSp6vqX3r99gA5VPpwB-f-xlLekiQgQQuThb_Vf-qv-PDtJfEe1-Jhy1FirI"; e_clientaddr="AcQjjI0whxcgDZ2nN_jKWsWgPt-tKe5LVQ0eDg-WsJp6o1GqzB1Pxqnr7OT9ekrQjZi_RHk-cm4x-xmjUiomtQ-oWJdETv9IwcbsL3y-0yAzCZi80Q"; e_upip="AcSiKWoIUrjYpyO1iBqiIelWqwrASZSAaUP92CiRUfEwrb8VavJxcxzkP-1EeIfTJRkibTdmbKTBanFhoQME8XgYnXsvjr4f6-LObflwgPA"; e_fb_zone="AcQf46vX8Y7UtMXxEU_S5INDmrjP9fX3MF_rlXJYqY7c3OTsxqKPv0lw_J5CKJhJ"; e_fb_twtaskhandle="AcQG0OjS6IX-nY6xxyJwJdyESdHk-ZcnLINxrnBLc91pSeDlc8Giz6W8oPp4V-QGkKdWuWvxhd7A96iHAkpmZox_5hrMqmRdM3QicCjNJY5nuuM"; e_proxy="AcRmAWe9drXripLBd7uqXCI30WiOVUh9d03fHGrfdvqNy9_CLTSg1QKIXLy88RleR89T1T0Lo6X8PSzx6_gk", http_request_error; e_fb_vipaddr="AcT4_-q6TnXqdiIzRQk1eP5IAqpzBA9wYMqboC0VbMNj20Ncu1wZGigUogi3icR9Lx0ZUn1q"; e_clientaddr="AcSHnEAWOlqH_dMcuCX2AoFHqsOpnuGgTsunmKoj8nQyW1uRbb74tP4TSjLXmRr_66CHljMY2lpV71i-VfE"; e_upip="AcQGfpa3t_Vm0ItOsvCYRGqNwbmgN-lBtRitiK3YtvBX2i9AJRWhZfsguZ05PvGBUqml5ePcuKYRH1XGU5tn-0BoWBpJeTsKKkE"; e_fb_zone="AcQ4OteYO003lYxH9Uz2Z0xP9UTWxx1_0uGx6hafReA_P5i_nuoFRHMWR8dOLQ"; e_fb_twtaskhandle="AcRghdCKEmI6M2CFqQjkpQeb52rKrWbHGb0sRANyPb65e0RxXraIaOKnIPwA0W9lQIDtnGjoR3pCWvtCli4awop5I2fQ0rTbUrcUjg"; e_proxy="AcSLArJ04R-lxXCzs0UP6OX-y3X7ERmVmAm_OEE3hXzzRpsm9ornI1qhGS9ib06v5Rm5GRLOuzHFRs8"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=7, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=794, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-24\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-25T16:00:07.852Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-25\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 42,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 244415294,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 498503,
        Symbol(triggerId): 498501,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'x-fb-aed': '834',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 25-Apr-26 09:00:07 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AeQTZ0tEqYiqZxJgGqtSsfO',
      'x-fb-trace-id': 'CCWyGC4NrHJ',
      'x-fb-rev': '1038152943',
      'x-fb-debug': 'Qoqs6yTc5ti7yoM8dMueYKZoSChyS2QFbIbL0Z7hzbJKpqTUK7Hl4kO+U8gIuqUPxq+Yseqv/UgPHbns4TjO0w==',
      date: 'Sat, 25 Apr 2026 16:00:07 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcTt6ELJ94xzOjPUT25yqdBWdooOt5Bj2yD6t2NRASYgoUBIgmJIoEMxuPJJ_oBLnyIIzAFsl7rNeaYczJ4PZImAYk5jNsPvU8g"; e_clientaddr="AcTrVRNdpkXrjABuCdSzt-2Zv0NCLHP6ktOg2N-weWAXJ1m7JFvmegbtnmcm8yFklgzqcC0NTP1RAwzKfLDySXLdoK7ZE8ppoTO5PMloKM0ohOE"; e_upip="AcQKFMGKihqlDqeak8tJvnttXPcJmFEv01ZL-qfkq8K2zGmogCeDMf0ZPPMRL-kyfveIrpI0SyRGJ_aYUgcgHDqn6ZQ1_lub_-Bdc-WGnXM"; e_fb_zone="AcS_hmbWIxph7dYHNy__rqE1qcF6AYqt3UiFlro0KgyMa4GyOyG86bO4sL-SG9uq"; e_fb_twtaskhandle="AcQcRLdw7PO0J86GCZlQzT0mFJ-PD3N97hKH3rBjsMB2zMIa60xjzjYaFtjtL3vxpN-V53U5ooY2wzDoCoE9Pohykh8RdVHJEK_coa5VUdOk48I"; e_proxy="AcRnX2mHsjj0g2fpJJ1e0WaVOeRj4uddnuyXIvsR4aT3RTAb8MY8jxT4ywl3hf16A6IWRgxneicXdGboN0KO", http_request_error; e_fb_vipaddr="AcS1OnG15J_-tf-fHEzrO1G3QtboZ2dGdU8Wv73N2uU-nkb5NRVl82CQJ7N8ePaXBzuoPsWq"; e_clientaddr="AcTK-nMpccUmGYEmuXHs16_hIBd_-qjC4v7zeP_sLhA8yQEmuEJiX4vgVMVSJ7NVX5UGzUyKnSJGLTHEtiw"; e_upip="AcQRqOISP_zZbYJXkEOHxfYaNViQkWYaCp6Hi_z3-qvCpNF54nvFwXHyxaOuO8PRsec2NoHqSZVofMgnBsMu5csPU2hHiXdrIv0"; e_fb_zone="AcQ5n-ccRZ5M-3lGVWka5sXt4iReFGhMHS6nEzwWISQuG_R7oU7uUr9C4kDARg"; e_fb_twtaskhandle="AcT-YvQXhi7JTmSgUvC2tszIS70-kVhaoy_5p_zv0sRNBTmcNIxgKtb5PuzBagbGXqap5yxQAsEThfsXTADbFl_KOkSgacIlVAig"; e_proxy="AcQdNWk5TYLqo_QAZ3WPNCXLqP9PKPk6hXXJOfNbHHYySre-7RV3T2CaikplMW2HqEQ017E3XF9--uQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=788, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-25\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-26T16:00:07.552Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-26\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 42,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 330815687,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 673242,
        Symbol(triggerId): 673240,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'x-fb-aed': '834',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 26-Apr-26 09:00:06 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AqoYcSYbcUrsUrSKTA_Q2Td',
      'x-fb-trace-id': 'CCQlvtGf130',
      'x-fb-rev': '1038172672',
      'x-fb-debug': 'LKTRRgKf2kVOHZLFrFlVZT6LgP0+iBC6o2WuDj4Vc3CLJ+zcJoj2uimc7BABYc2tT8FVwvdVYx53QJdqMBLv5Q==',
      date: 'Sun, 26 Apr 2026 16:00:06 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcRjgfTf9HogiQe-XyGn95AuMQ-uPtvcrPppgtAQwfSt-gpKfD6OJeYp-6Bqtqy0S9mh9h4PkBpYbYBTaC70IuMLoC1MH6FoupU"; e_clientaddr="AcSP3RPR6UL7PVAScfSNIo9h1t623cfOu7a_s75RdGSP2sENXUUq45_jxLmAS0GdRsqJKKNl1jFEzBqapEiIFHuCU5bub8uGse2gojxIcn4WSNE1LA"; e_upip="AcSwhvTuKNROSLA_oXZ7qov02dadG8WIvs5fqwoimCLGI_ze3TgDbfXr1CNrxmqXnH9fARE9NzC4zKztiRXYTZCD6xEHSPC5_5diZevTYMk"; e_fb_zone="AcT_gLOQvLA1vEiAOL5WWtrZhom8F4GBDmGJKp17K1N_kPV2QiRduwzxVwCZ38pB"; e_fb_twtaskhandle="AcTv6ehIvh5flt4cmfD_miRcinaAH3WkJ-OjkJ1Rpdrvn_tzfZU8a-D0YHLDt6T5X6eAAfFppHT5gEolTZJ-l8hKIasp1jAujJ7P88TBfr-CQ0U"; e_proxy="AcR6BAA9zfS95R5HotgnveL1Xsn9FRlXUz253tWS-fp3wzb422aMG_F2HRm0p6U9t2azhDaMNeXw8Sw79eY1", http_request_error; e_fb_vipaddr="AcT_SPxN2yr-Qy3413Krjh4RnkAHk00y4W04IM5hT-vO0Ih9-UFWb_FDHVC-IQbEQDm5CO0TRS8"; e_clientaddr="AcSTA35gAUmklVPCbnVDjpFeBogd3o2eHCylIeJetwmCC6or2wq9JYeto5PiYfNDTuu6yssFf3fWEVlEZ5I"; e_upip="AcSBrJZ3gKAShZOKmKt_plVUwSIkVD8SiFmZazvhMMAluYjeOWFuYokN-4OkfP_3cmYjAi9dez4OO0OkkgpJ7y7_TNeOdwh5cFc"; e_fb_zone="AcT7NWFeJ2zXHkGsc9_7mRtaNvCwnCgghVCTz1B8uuyvcrFjKpVljupngvry8A"; e_fb_twtaskhandle="AcQ6_1wX1VToJICbdeiMd7KEl_vh5hFAF1GETfF9OyKzRoSoCNVZCaCVOxWYnF8iqx32JqOht7gIc8wt1zjO5oEEBDTrYnAH5QesXao"; e_proxy="AcQEP76MuJyY0qSrBV_HHq-HP_DfQxM53gpLyXda72QTbEWAtC2kk855RzigWuqKL9v30QzPJFD-W1U"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=28, rtx=0, c=10, mss=1380, tbw=3707, tp=-1, tpl=-1, uplat=721, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-26\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Exception ignored in: <_io.TextIOWrapper name='<stdout>' mode='w' encoding='utf-8'>
BrokenPipeError: [Errno 32] Broken pipe
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-27T16:00:11.863Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-27\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 42,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 16019296,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 42068,
        Symbol(triggerId): 42066,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'x-fb-aed': '834',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 27-Apr-26 09:00:11 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ARDbJUFkiBPwAvsX4PwKrCC',
      'x-fb-trace-id': 'Et2EfvxcCLS',
      'x-fb-rev': '1038191839',
      'x-fb-debug': '9qfD8QTZs8reVWMIdN+sl6p1FDvWQfR3d8GAgas3moaAhMCf7I3nN8l627Grnew58EIbS2XZVr1xKBIkaY8mww==',
      date: 'Mon, 27 Apr 2026 16:00:11 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcQo3PNtHzhXGRuCpcEpBu1uDvhgnAGOkMO0mCK8ZHU61vtB50zoDP43mEoxEirto9CYIkDUi5RLzJh0QADCjqzuYbjtjsqQIC8"; e_clientaddr="AcRgvRIUEweJA2cNiUV9RvuEWMtkDW8dG0l33SPHAAzQXL8AjIW45aJsmRdNM5YgVuY2vRqRTEolBKl5w2bAGoXzcb7sIczt69rSWA6d9LyaYi8CXQ"; e_upip="AcS3kY8D2du6dX48Atnw4VtUQR71tTXrf3wku_qC856Wi4f5WbFqvKK2BaITwu6Q3s-OY1rDhYbNvzfL23YZrIn1_9bb6RBgx0tej9nCxXA"; e_fb_zone="AcRpcmZrg_MqkH2CedXNC-ncG7nKxpYJvhH1gEWf0RCo7gLTJzNsuINpppSN7ZHG"; e_fb_twtaskhandle="AcQglaP32mGZKRvrrDPldZbc33rfEModH7vfmtq5pWRQLIXmiLLbW5QkHRLitHbII6ailWYqnN81hfA-jQalftWgf-rD04blYC43Gl8PyB6Nhns"; e_proxy="AcTNo_E1L2QiViI9igFVeu6RJ04FLln52Oe0Eqmh5nCNFIreGk78B3PepDzngN27H6yQ8lOOfmpKkEH60gWJ", http_request_error; e_fb_vipaddr="AcSPaYv4KOoWTDEpeKRxlAEUG1OuYXhbVqv1EBXIr1CArFSJlNvzTj_1ZY6USDnhlRS8sKfUxIg"; e_clientaddr="AcRfKW36wNk9h2Xen2AB8vLq65z6Nvzrm2-Ej53NkUa91eh7_lafsuTarjh9CW5IWXu8K_iSc0zTRE4853U"; e_upip="AcRZoQHLXJtxqbMNCTOsXT_uYNPuFRK1vKHMyO0AvE3rPjMD3Zg3natayyoHrZrfkTGOn5e0apSbI0IBTbkV9NSLGvUA7qugntU"; e_fb_zone="AcReijZ1hUStWR_JKQb0_EycQwvSRPJzziAIkYW38zVWdaB2JRlDNMK5o_y2_A"; e_fb_twtaskhandle="AcRVvaKwaFhb20UL0OvQn40yFOdZfHu2Wd9LojGpt-RfrTsD5A1scfPY-0lrOALLxxWplghd1VvzvHxG-yLTa2HPgKm5LPoZSwMT"; e_proxy="AcRRwUenWBiPIWBlVn7uNSCd5dLRcPfarYNtd_5rvFSq7hUZserpV-SMyl18MrZR6PF_V5gQZCREsM0"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=28, rtx=0, c=10, mss=1380, tbw=3706, tp=-1, tpl=-1, uplat=727, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-27\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-28T16:00:07.753Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-28\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 42,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 102416097,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 214485,
        Symbol(triggerId): 214483,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'x-fb-aed': '837',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 28-Apr-26 09:00:07 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AM1EqHW_4GjLaF4l3Hhnr3n',
      'x-fb-trace-id': 'AmXG4yaSQ/G',
      'x-fb-rev': '1038303932',
      'x-fb-debug': 'v/E2KXAI1lDOFFBJZlZh2nlKZcyCRAIe9QXyLh7ClcKFF8vlm+mjVwFTu6MQ+Te0ro+UpbgUABwM2KRx2RpCoQ==',
      date: 'Tue, 28 Apr 2026 16:00:07 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcQ0BbttYB43gYQOP6THunp7Q1-OnYsRnXmQ647okcYYWPtCsR0VUYQfCpx0tMXRVqJnUw86B655TIyZ3-IBsCKoLGN--FKHI78"; e_clientaddr="AcRNhdA6G0FKhp8GW6Ka7n0JeIK2hx_xfljJ0FfOSzDFrBi0DK06aprKp6aPTKAhkOtq015p0sl-pCg6sksAIKGKHp2mmlC3raY9kPf5D-oSJmnWSQ"; e_upip="AcTN6_yoiILzUw3esxMcyiGLUTLsF4SivnOldX4ZyuQDDMpZFp2MZFFBn60mN86crcj6d8VW4eY4Sig9ibYlhaRBtl11vs058Frc3YkYKA"; e_fb_zone="AcQobntvb6pPI8a9Fy9oifu6umCnf6EeJBP5lDbIgDOL6R2LMQswwLlogFlzbSca"; e_fb_twtaskhandle="AcSJqYZMbVc4dZ67Up3YC43eusAhjQIvSdagx0e05yHmaXR95cvkzMLr6CW9RiOJhtw1RkKr9As3dZgfdGiakQurwbQRihPZ2f5XKolUasngAd0"; e_proxy="AcR2luHOA-TUulvb_3kQZhikTMfA_LdyejO7_BDpY4Yqfom2H_wOaHuE4YUDmsMzSXt0nhAfaC6cm5Lw-__m", http_request_error; e_fb_vipaddr="AcRnVH2QNvxPMazFFhTGxAeYmbBF536_4G8upHUY7nGCrVCehxvX_SH2CUN9a7v9Dp_a5LErudY"; e_clientaddr="AcR9qHj3iLBVecgIyNgEt4FSzP5Io6v1vzXr_KocLezKlE7cQ0GQlRjLUWy-S04fm4rV2-4TI0cuXH-S-ZQ"; e_upip="AcS3hM09MuSREH3-iS5YlJXhqS3Ern7jhSXt1JayGjljH63LIvmZwzhAvxlLjt9rLyH2LKZGqjcJtH-EnjK0zl3yOmvKsU4Bts8"; e_fb_zone="AcT8pv7EeXV1EWMtk-hExtb8a_qrvGNt6QcWc3nDKJLPYLqJgOINPylURk-Kmw"; e_fb_twtaskhandle="AcRT4QL4_rG2rB9JiBuswSY0VQCSqt39KIcAjC233LI4npX_cC6isJR8kjty52gHKV1J0ZA69p9xSxie-wDzJ6KppXqJxcz1s6d7"; e_proxy="AcSHmIVT7nOeMuPZGy01z7sEvUJrVoNiFFI6lhI9ezcZ7u_Q5-sfMy4P5lb0lCG4GjvxtYeny9uhSow"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=27, rtx=0, c=10, mss=1380, tbw=1468, tp=-1, tpl=-1, uplat=740, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-28\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Failed to save opening stock: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePoolConnection.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/connection.js:29:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/utils/Database.js:37:33
    at Database._executeWithTransaction (/home/deshitbd/server-erp.deshit-bd.com/src/utils/Database.js:23:28)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async runQuery (/home/deshitbd/server-erp.deshit-bd.com/src/utils/storageBatches.js:11:18)
    at async upsertStorageBatch (/home/deshitbd/server-erp.deshit-bd.com/src/utils/storageBatches.js:41:24)
    at async /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:229:7 {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: 'SELECT storage_batch_id, prod_qty\n' +
    '     FROM tbl_product_storage_batches\n' +
    '     WHERE prod_id = 2654\n' +
    '       AND prod_storage_branch_id = 1\n' +
    '       AND prod_floor_id = 14\n' +
    '       AND prod_rack_id = 1\n' +
    '       AND ROUND(prod_purchase_rate, 4) = 96\n' +
    "       AND prod_storage_status = 'active'\n" +
    '     LIMIT 1',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Failed to save opening stock: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePoolConnection.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/connection.js:29:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/utils/Database.js:37:33
    at Database._executeWithTransaction (/home/deshitbd/server-erp.deshit-bd.com/src/utils/Database.js:23:28)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async runQuery (/home/deshitbd/server-erp.deshit-bd.com/src/utils/storageBatches.js:11:18)
    at async upsertStorageBatch (/home/deshitbd/server-erp.deshit-bd.com/src/utils/storageBatches.js:41:24)
    at async /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:229:7 {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: 'SELECT storage_batch_id, prod_qty\n' +
    '     FROM tbl_product_storage_batches\n' +
    '     WHERE prod_id = 2654\n' +
    '       AND prod_storage_branch_id = 1\n' +
    '       AND prod_floor_id = 14\n' +
    '       AND prod_rack_id = 1\n' +
    '       AND ROUND(prod_purchase_rate, 4) = 96\n' +
    "       AND prod_storage_status = 'active'\n" +
    '     LIMIT 1',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active' AND p.prod_id = 2654\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-29T16:00:01.019Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-29\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 42,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 188811579,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 445676,
        Symbol(triggerId): 445674,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'x-fb-aed': '837',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 29-Apr-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AgPjzY_-hsbkZ2O42ArlnS5',
      'x-fb-trace-id': 'DDn/UgGibti',
      'x-fb-rev': '1038405996',
      'x-fb-debug': '9rP09ndNbBByQ8haN8+Z2Nz+X1Pvr785Er1MlkiCi12us5MGR2SAGwobVgAI1Mes1SHIA1knCQG4+T7yW8Pa7w==',
      date: 'Wed, 29 Apr 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcRVKT_YC0cnCm_wvI0BAsZpm5U1nfEbwPwD6r7jqzamOM_ssIyWF_1ETK9Y-1x-cpub-n9sYF31pUuVZr3HWm4oIsTZNOtvTiM"; e_clientaddr="AcScr3YO74a-sPEjIluoYeoPOYmZ5PiUxgWRnfeEGVs1dMdq_I3GxJKsJz3uZFXsg9PSKZquU1sgXVzmdqZ6f3gsisjdQGBY0vJwvat5yaduVWYxhA"; e_upip="AcToWmJ10Tp1n1xMGhGk61XfKkiqtelUFDgNKnp4G52-8HDO_ucDTYWqEpyNsaoN6FdgZvWlJpxgWoDJ9mbTfadQSfoi0ClcsqVmlyddIPM"; e_fb_zone="AcQe0dJLF0Kw6Tt24RQvyN21BavpLM_RC_5VdNHGQuyXWkNX1jh6rPjHwTqR37a0"; e_fb_twtaskhandle="AcRvikOrdNIWg8ulCXK7gJ1xk0_5iq_q7S3Ey8FTpjtR17s959sRjwu6WpVcRcq2oGzcVSxAAlwd4fGQj_TEZiKId0WqstcCC8uho0e7__TPG1E"; e_proxy="AcTa45GFAj8nVDkCkWt0nKMwlLrNRvkrhrFO5HyFWzjtfKJd_vZJJAJ0-_2gvddVBmT1VKRm3RMpGwZl6Dhs", http_request_error; e_fb_vipaddr="AcTFY2uKiJA5bQjzTQWx-htIR5l7wLOtj28akx2vlUP13f-v0MEy4yhoOdn-zs57jTg7jyGc"; e_clientaddr="AcTmRbGKzJVSbubdtNBzX9WyqY9gUtlQBIL7jJ823IAWK0_NzsfVNb8WuZJvITikjZmbPAxp393Ob71H-AA"; e_upip="AcSIxm-r_-pl_R6RaD8lIT4XlbPYGL8_Wu_l6QbOalS8c7UmrIMTLflWZxuhQ7bI9UMEPpCwE_MvlsVUbwNTphzto4pqsSZwQXg"; e_fb_zone="AcRDEBQ_lAW7KDCiukxPske_bbOxxyDgmBuyn_BD1tXox3F8pqcjVfTWOmoofQ"; e_fb_twtaskhandle="AcT05vUyflmF8A7zR2Ogd1uDFk5lKXF2nnTa_z_0m7j3b-FOuxGAczBsXEqJY597zUzhhha_U3OYSgwlQ6e32fpWNVVe9p0jW72SMA"; e_proxy="AcTsNHLIHR8WsyhY3mNzn_HkIBcHUwoLtJAyQPlvuBIZTs9EKImzI4xeeY5E9Ewiu2gnmQGXJSL9wfA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=13, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=734, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-29\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-04-30T16:00:01.052Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-30\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 54013034,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 107919,
        Symbol(triggerId): 107917,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 30-Apr-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'Ar5NoLRWDOi9rj3UboiKmNz',
      'x-fb-trace-id': 'Gr/xCpI4wrt',
      'x-fb-rev': '1038499816',
      'x-fb-debug': 'EL9IPwYeM+Fo3HZVjxxb0NRN/my7xTs+Wnp46ABns8l3UlBWnh2hTt1JzTQ9cEqTj+lNWXWwlgbYuYhtdiV0qw==',
      date: 'Thu, 30 Apr 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcQ3D-9Mze7fPrbwV_Gk1_TNjer3CECItBmWWQJjmtUkoI8oB9M0xv_RNmhfAUIjXb_jzUvos4uwBnBLYttUQRd4k1e3mJ9aWIo"; e_clientaddr="AcR_2C8NGdAahC7JfE6O0zMa4PkjzaF1R6muXfz4aGwGkoJ4vWvAy18qr35bZiaa-FbB3X0HxqlUUEzB_iID5U_BbAw0K3wxAAw0sMA6CTWSr3Ag"; e_upip="AcSxoYQyFyLGH3e5jT9XOVAq-gYPRJXMFZrDDGutu1k4ZTkoK4ZrFsVWYDpVi-g0EdyukYdnptfrlQ79zmvWhS_wLPyHw10fXYqNiDrJ"; e_fb_zone="AcRNPYmf4Pfwh4GDBoMuj40_YBpr-Yiz84zyTaUzsLkZB6L64l4Qirq2JQB0dGn9"; e_fb_twtaskhandle="AcSmC0-lVWZVhYpLVAQTl6DUXXkfs8F0D46b4vCZZPMUssgIYUivRFo05xVXWntPWkUpcKVZn9Gcv2DFKHxRUx36C4M9uqaXEClCzcBQkh_rGYc"; e_proxy="AcSvdYWhUTzoN2wozVc6v8TieaeBNg97dpy_2kl5XIKZTXJkDiaiPe8mTYilb3T9cFd1NZYsBeC4MlpOZrAXiw", http_request_error; e_fb_vipaddr="AcTCEtWxcz4KP5w1V5hbGIJB3XIhkcn7VDftY461NJlJZdZw1JIGomdv-rq3UPFRspUbSvdQ"; e_clientaddr="AcTk6skXjiKt9mWp9KExnt4kOKymIEvWweZvXGKyAjCP9cB_e2vDoFN071fGoV0sem4qjyG_AByOQo8JzMI"; e_upip="AcSZNj1696c8DHdWvRtjkIyhMqP52IwnhG4D0N8UOfuIjZK0ciSB25I3iTwnYyJBmfZyZnRat6PrbDDHKlhe7psrSgOM5pJfyGk"; e_fb_zone="AcRMd8H4CsHo1oL8nB7OlxjTqfJz3gMo7rwvMb4C6kNHaOL9UF3JD97TB38s-w"; e_fb_twtaskhandle="AcSuTEMJ9MTLeIpdfdnk-9ICY9fxbWZu92jY1sG4FkQhs5YcJM8rePQoO9wPDRK8dPyRiP4SEy-xemurgQ7pbAUz5cdYcLXZatHU"; e_proxy="AcTQkVcPWS6pNbbpJicpgh11TMx7d_ZMvNv43YOgCB1hHK4E9rdMEzuADuAX1xBs6nK1M5wnix6TRAA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=14, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=818, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-04-30\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-02T16:00:07.440Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-02\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 226821693,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 452639,
        Symbol(triggerId): 452637,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 02-May-26 09:00:07 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AZ-CPvPEtWw-rW8Rq1PV-r9',
      'x-fb-trace-id': 'FtzoTq8PYVi',
      'x-fb-rev': '1038673194',
      'x-fb-debug': 'Al8EJ0neFJdpKd6A4iX5XdmiTv9BA1ADG1PrW9TB94fzlV0Kdg3cOdP2Vthl2xKew3jTpdRNs3NFlygJslZlnw==',
      date: 'Sat, 02 May 2026 16:00:07 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcTlba0fk8yI39-4QUE2ZTl_GeP-3q8bykxZTlh66yyZ85qT-NYKiVMPjwmSQ3qu0ESFW0XAMVQOge8NUNy7GHjHw2ritIw-sLo"; e_clientaddr="AcQ9kCKydVmf1IVYWcMRFoZZP7WF9oWNaLe_eY7aaydQ4qMivlT5DbrJaSTAFs34KVUoCmNwAg2UWzyCqQZ8PRUVu_8YPRbpDdIKfGNtbR1oaMhG"; e_upip="AcQR3KgUp_6aYX54jTtzJagKYtZqummeDZLBiQ9vUW-lB-Svz5MQ-cgLSskppGXo1YRI2MQYwfhuniFfN2jmIPVIBXOv0db0pygy9rQ6C40"; e_fb_zone="AcTlLDWGXKGiTMHMCYgcJdhzMXu423O0DWD9Oi6JILpyhwbIuU3THMqyKR77SGLC"; e_fb_twtaskhandle="AcS4MC_7JqT6VWTcupsBEpXHSaZdRt53rYjajsfqNK2K6V0NWCdkEJCzUXhsF3XPY4Cav4y3zj6JZk9oAoeQPZiIIuiwTm2t6o-ydMnCETCTPA"; e_proxy="AcTCS3EVApQCoW0qOq8HDmXCh-ac5uy6p5JU7zVCK6w4cwR4mRK74OiaXt7DwDnUUty2ROpXTun5ubLs1Jl0", http_request_error; e_fb_vipaddr="AcTluHRDPkiW-b1QIFmzGV9us75oDCv-IOR47bLgDAtDEKJROJuYOYDhi6Xx0Ui3rkD_rhfq"; e_clientaddr="AcTihru_TeVi3roir1cu2D4Gr04iFYLEj01uxlQr_80_eShDlhzBTzQe6vW6r3J70m59v3Fz8bEwkpcfPhs"; e_upip="AcQs8DQ2DousurGOqf5WvHheHEbFi9WoUrBS3UKYQaQJrPYC8ZMgVIZ9QoqHf2c7RbE7Ug_YVDX76kJOAO99G-f1E47E9qch7CE"; e_fb_zone="AcSvHddloi17n9nggJ4mYxy8aG3XjLcH6HFuhGPUr-R0W5sAIfxsBn-4JvMhDg"; e_fb_twtaskhandle="AcS4vH-UYyFSzKqohPbHriJPYopThwjk7R3rmfvBepvWP2RGtnY4m13_nlQo5HLXMft5FqMbSmrXox0iTvftgH2GB559BkopL0tL"; e_proxy="AcQSND4rSehc8GPh5BeF6QiviTKP5sge_42WHLF6K43YvaggjU18VV-W2-ej6v1-7cobhsOkUU1x8Rw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=7, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=806, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-02\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-03T16:00:01.044Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-03\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 19618754,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 39561,
        Symbol(triggerId): 39559,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 03-May-26 09:08:10 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AFyfHuUD_6bFl1UOyq9RFZw',
      'x-fb-trace-id': 'Cx0gKkautfw',
      'x-fb-rev': '1038690118',
      'x-fb-debug': 'DqeHcZu50KXQhDEXL/WEGrhf24iuzy3dX76Qo8joUz8yKpVLkdpbawC9nONZegszwvq3ucyD8b0wjIT6uhDbnw==',
      date: 'Sun, 03 May 2026 16:08:10 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcQuaSfQb21c1Qy2L-iI6uvmOq4E4ljjsmmFgmKOtbdJY2Xyu79-Py_3c5BWmbUXVRxAQzN9XoqXrph8ZREWPASyoGHQEEMtcsU"; e_clientaddr="AcTvCqwOn2sV5OkC_NtI2qliDlm-ax18Xq3NL6aE55htF4UdHEnccGRfs4vFs6PWWSv60psByi4pusbquWDXLHLarm1X3aG00XsQfqmkrZ1zJ9L9Qg"; e_upip="AcSd9351f_X5AOYAXk8UOM05MTN5ux0yqKPy8TBnqd2urST_HeYZPb6FSEpUmqvConm0Cv9sq1MYxMQNgmACVircYxwZkwTmyGf-qqjkaw"; e_fb_zone="AcR6WQL3SrrKpCgmd0DwhFvD9goJcjC0W59CdXfDqyGQiLQsAuk5F5RRedUkB9Lt"; e_fb_twtaskhandle="AcTfnb6tkuWAsQ4XJOCHCkQI8UwLR05yxLGxAtELD862c9z879UqZ-7cjWuwPfyCOCuyAUMMvv7uKLFIXg0YWQEv5cUpEWRRaI84S72Sixtan0w"; e_proxy="AcRVZzZR7W7Eq3zDGo635eILWsTxoqtgpMUk2BtMhx0oKMYz3x0otKfjR-wYS9dSd0TLB2bZzOklXdUa7R82", http_request_error; e_fb_vipaddr="AcT1ZCWrzMc_sYxPc-VNpgvjiupJum5HzvyC5hFv_FBtqR1RVrogzoZo0Yo8vzOcsiB005aItPs"; e_clientaddr="AcSr_l_1kTK7YHaZXvtx8NEwJ-PQzbFfOQ5XG3A0OBaUHKRkTGnUtJpP_jxT1zCUtpR8IChnwIr-hucHUeA"; e_upip="AcRZi6-bU_q6B0fkTFLcguBVKJw_shZMbFIcTDpUG-wyMrF1O8NRvsrmoNKmQJqmXWoM5EPkwPURfUVR3de2FXtZHn0_2SMw6_4"; e_fb_zone="AcTSdo8ri9Lf_NL2qXPP-7PST1LdIulIVbnH7EShSYA_OPw-124YiZj7jp7ckg"; e_fb_twtaskhandle="AcT8C9VvQOg75ihpwa2mcpG3IYExLhQ5ojFFoYDfWUE7VfhKujMeQbqiUmeEiZQdXent24cmJ0nwsjdapKOwdsQC8lk7Ot76xrbP"; e_proxy="AcTtWJifTJsyZOWd4Sy_U_ILW6w6AreV_d0X2coiFr5kOFuHZ2_dinnW7cZZHDDvuNKvJs13sdZ-Lls"',
      'x-fb-connection-quality': 'GOOD; q=0.7, rtt=75, rtx=0, c=10, mss=1380, tbw=3702, tp=-1, tpl=-1, uplat=222, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-03\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-04T16:00:01.459Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-04\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 105530676,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 211593,
        Symbol(triggerId): 211591,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 04-May-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A88XgZSnKCriZwUBoyXlse7',
      'x-fb-trace-id': 'G2pgVjsO+GN',
      'x-fb-rev': '1038716119',
      'x-fb-debug': '7hE9Hrt/P+kj+fky74+wwDVnT9PL7JhA4MvQUAO+JFW2saVAo9lPJ4jYiokTPOEDs+clAVqa1gCKYLUf5yxqCw==',
      date: 'Mon, 04 May 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcQADZlP3SoXpbY5ds3zdjcztSqAEXUaF48pUZhReLvHLo--3cNM_72-JKBDy29ShM7oKj-tBRFTTzMsvmosFH2BjwMAcWrdNsQ"; e_clientaddr="AcRA9z6txtxowllPyfAkhkDyuUavLXptKDeupkEJFuXGmO5vFZxYvsZ0yw-yOEMYtv_cY1lRpXTZ9WvwDH7h02vX1eB4p54i4X5sSRNj2_qoBHPL"; e_upip="AcSvfXKCxwdD0LmjOs0ysOdrETuetLAtAxoVVfgth1EfTpS8-BR66LZADL3GMwRbtp9rVPZOWFVnnEt18rFagqjJfzFoQ5syN1d9m_gZ2Jc"; e_fb_zone="AcTx8pHlHVftzXiWmuKMUfVcgblLCjttA-OxO92kJ7jLb_BNhrQgs_zW9aE3rLnO"; e_fb_twtaskhandle="AcRzt9B72RAPnT4HuK77NgT7xiNh2Mxcy3ZYSqTFFbLgEg_8YUiwpYiGsd8XZSMbLQ9aFPIi0w8fpbMjLvz0foOeUODVw6nmlEtanAXyUc6hqA"; e_proxy="AcSE5VzFS6FFsYq9Wb4Heg035w3j8nKbN0g5XMKAupXZtz00eqSK6tlW-0i8HZ5FSnjixqJGCUYOJrXJE9dB", http_request_error; e_fb_vipaddr="AcSNFaBmeBMqGStO21mD_YhqophlSBQ2ZtoKXVEgYRYaXzj5xpRISfxKou2pPauZHC1niRs5ag"; e_clientaddr="AcTbkKxw9ceOuYvEpvyhXT_hiIuX4TqxeyWokDdNvujalRJKLRmIPHIbq_usElr9BDTezXGsaE7HZyMzUok"; e_upip="AcSNnUO8W0xSfoTW5_oE6ywJK3v8Pqcm1tarCJKtx-aM_91WTjzGT53xKzszr3vyh53TNY1j0Ttnz_bcJfoVt2jIfJYQH0T8-u0"; e_fb_zone="AcT_wOTsya3v2ptmeTJdJI_8Fg-Vna2xcGYgw65pVx1VkiNXjrtY_0r4VlUkGA"; e_fb_twtaskhandle="AcTq0Z_VmdZDA6xlrBiaz1nSs8YwGTOkc1hCgIZvtX5ukkyQJ5_1stotGtTh_eEE3PvhiMTYXIXwhXkI4SodF0L_H5gk453BsR2A"; e_proxy="AcRZ9zhQh4Y-rF_hrYZxoGplRfoXVVzjdgUKCF5oTitfxnb2MKaR4gRQ9GE-Cvi3MxXjUliLTsZ62c8"',
      'x-fb-connection-quality': 'GOOD; q=0.7, rtt=51, rtx=0, c=10, mss=1380, tbw=1468, tp=-1, tpl=-1, uplat=232, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-04\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-05T16:00:00.730Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-05\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 63585193,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 127489,
        Symbol(triggerId): 127487,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 05-May-26 08:59:59 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AMQwy4iAPMrbHczRngkAIlX',
      'x-fb-trace-id': 'AdglOmn1NdU',
      'x-fb-rev': '1038812188',
      'x-fb-debug': 'zPfWrHjXlE/RwG3aqsuXwoHjoN4uPkuouBa0g7XBglMlDCXCd4rB8HMIc+tgwjW8JlGuU5w3QIAqAr0Je7zSFw==',
      date: 'Tue, 05 May 2026 15:59:59 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcTW_ySCF0wml2_ssuIC4gikG3S0Ur-a5fq8wEE0joWVpJ0EjPbPXLXMzJpQYRinJHSu5yXyJt6L4s7DUO52-L93mn11jMbGqts"; e_clientaddr="AcSQ7kKO8OHffWDJGbyt8nFFDHcNpmAO-V8f0Hd1dlvgd0H_7wCpAXmLmavhg0KScYz_yOVt4OT3Is_TtnUHCSn7t_BI23uGnaHdEb4byKoXj1XgUw"; e_upip="AcSsGZDaApnNlreWh69X1ke65miNnD6JWGjO_opH0tc4JMOqwaDkr1WUZdPu9yC5yIDEaty1hhH28PJMWzGr9_DxFsnPHA81_PCGVHSv"; e_fb_zone="AcSAxN_Wz181dxXXvbHUo9UNxwrGJlv3eIbb-nq_GBrvfmUEzVrkp_dVfM-2plHH"; e_fb_twtaskhandle="AcRvBVkBknivuIuYD1YSCqaD0jGa31EZNMI6nIuqHRGbocP0WlCndxbG7_afObuvNwdets6zgXrIU_7ZuYbQwO9TqUwizJH762wbWfEh9A_l-Rw"; e_proxy="AcQkKl6JCkJHa5VHC-4oj_BE4URWXnVbHUnIC4LjD67jp1Uz9Y1Mc6eyzU3-N8Z2fzx2no8C0NU-opkq3IhY", http_request_error; e_fb_vipaddr="AcQ781qNLqAkLBsp8W1O9y1tjcrdFi-1yH6nln0OKhxtI5jF0wzoeAI5BUupZ_ds2FCFl4gYug"; e_clientaddr="AcQpv1IH_Lr0VTRLAifXeY0V4WwCb4fWkfEXx6l2WU1Oy_KCXB6R3zLJLxZZHt5SCoipuDmuANW2CeHV52U"; e_upip="AcQ_MRBKrlK_1Gmu4bCHsVW_v7WyiViuA0B-FWrWTybVrh4VulRdkWbEyftjsuRAPWerRsXfjxkzpWJdrwxap89_pdApozlI7As"; e_fb_zone="AcRGoywF2JQBBWWJroIx1KjpOuqTdQqmq-tg90ompOJ4kfd1MoPrYTySPPsBeQ"; e_fb_twtaskhandle="AcSYADcKFzOcdb3IXV5Ju352QGwkSs50RgGaBbVwEpsm5hoHCy6CntK8nAV-J5G8BGrbprTJDFAAdKBA9WdcyI1yVeQMcjvfSdgy"; e_proxy="AcQj1HLoyK7prgiOX0LJC5uCnJ-rq2APiiDvm_88dJ8eN9lGO8ifGR41FqsTLh9It9Pbe7t4y_SIHdk"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=47, rtx=0, c=10, mss=1380, tbw=3709, tp=-1, tpl=-1, uplat=381, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-05\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-06T16:00:07.047Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-06\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 149993847,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 299788,
        Symbol(triggerId): 299786,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 06-May-26 09:00:06 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A19_29EBFy6FObvakHJAjMz',
      'x-fb-trace-id': 'ExWvII9Fhyf',
      'x-fb-rev': '1038908278',
      'x-fb-debug': 'DDkyW7wELJwLHTvhqaFo2Temx6km3Bjm0FNslcxNGYEeX7+7NDXqYb+ocQsa2WxloXFo1+3SvJUwpwadgFp4hw==',
      date: 'Wed, 06 May 2026 16:00:06 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcS6AHzCfQQ_c2WcHdkf2-rYOujJz6dnB2jAK2qVIPAQjU3ePkmDUW-Kvq_28r3wRmR80iJVACvsP2dCRP4wnkhHk5yw4kQW49I"; e_clientaddr="AcSeSmrcRneRlIDqqspi8QX8ILWP7AZiizsoDSIzMPuGf1yJPOqxnTam-JamdXm0YWfJfDz1Qc4K9Yd85LtZaEk6a1ubSmoWLDWLJmS7Fg4-9DRM"; e_upip="AcQtOltrDskABu3pn9XUXrBM-Ss9BWYlj7uMTPHR4JBJBvpaFLP9FrpiKXHM_i6nbKNpznncOvq0eI2NuCNNaBXGLy_CRwVESyXaWERQO7M"; e_fb_zone="AcQELGnGRr-ctq_e7GJEy3yngGp0LmxRg6uBMHxLsr9DrHmX-DxGCaxmfC-Uar3h"; e_fb_twtaskhandle="AcRIY1Kc_4xZrNV2HNQEZ1YuDs4UxTeFHG4xt9jTbENjtT52jhd4lDee243OstBeqSTd3wdOTcom8sL62vd3NdPJnx7jiLXnvzFTeIoiUXz5"; e_proxy="AcQ28ht_AntEzDxonJz-kRkbfBf2QZyIAQeWpeWEL6VXo40ozya0AxswjeAiAn5hTHNeL95LQZdvQuTra1GK", http_request_error; e_fb_vipaddr="AcRQiAReyWkqYMqXj9AkCpjuLCAKqEEyqz1A0SSX2SfMtUvSDIZXjhXdJ_rbphY5Ev7ASyC7"; e_clientaddr="AcST9N9OQhe2jsnQrCtyIV9D9Z2yZTjjTylnpAivjUdlHommbIG-gFaQn46LUsm8AGTmU6s7Zu0Sul2hKng"; e_upip="AcSW_zGvNBvCitjqyzuzzWXnjoA9CBOwti5oz4SuvyZFlIddHYUlYp0ylYZTLF55zaRjowz4OpRDzp2s4HVYZvVCx_nekv9_rl4"; e_fb_zone="AcSgA-r09wXPx3YL6axcdJTHJv0ZL5iAoD6PDWQ_HmN14P3rJt-Nd3LtT2-DdA"; e_fb_twtaskhandle="AcQfyCgmwwaLxaXkyAWQ6wRpdA-WAWaWfe9QN_xi3lVvPv0MoECdtqo9rLsPSsHO5V0ssL8ytbah8Kyu0axABlhN1xIkzknZVXvX"; e_proxy="AcTX4BpwE4jTeeKikqu59Qxg1n_EyTj6KHW2OWZiYely1-irp_OW4UpTbb-4BRU6ey5Zpo_NOKSdCgo"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=7, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=790, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-06\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-07T16:00:01.351Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-07\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 52747526,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 108792,
        Symbol(triggerId): 108790,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 07-May-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AqhVLsj1eJmu6I3sFIIzx3z',
      'x-fb-trace-id': 'CX3iOYBSXSd',
      'x-fb-rev': '1039005551',
      'x-fb-debug': 'cZHyYXE3Tv2C0Y7Nl84L45QMhQwpKlJkdHS4ReIyS5N9ITEwdqd6A+rHhwZ9puUJbK2DvN+9oiPoRKjyAPc7tA==',
      date: 'Thu, 07 May 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcTFSYOsIHV4EAdDBZHKA4gEgP_X9ylPjpEvp0qzA_c8ClQUqg1txYa3RbX6QIuxgCrgGdEj9J6WXYOLzGflRr-D2bttbpTelLc"; e_clientaddr="AcScPljNjJAIE3JaiQ5DEz3i6xt-pE9lgmcI-uIhA7Wzk3uMDb9lJzhWoq4ntnkEQwgjkVOYeZIe68XC-IqkiMp9327O5RswJDSN2S5uZhg7UHHQzA"; e_upip="AcR9eNJVjIaK8yo3G8M2kjeMVzFtFnXtHC13IqWDVgTy-WxzKoGzuWmhWMR97WXyv2228Ou-Dh9CTst_6j0XTECnETdwtXf9y4VC2bPTP6Q"; e_fb_zone="AcRLMIxr8obNoh47mdHfjW3qBg0CKw8mJz1IFZODew8clH_r2fcPrBhpy2zYH4Dp"; e_fb_twtaskhandle="AcQcIq313B84Hq0s5WJI18FEpLTV7d9OiyJoY7U-ZPG2u-fKIOMRymUlidIBxpWlZ_8T__QK2sQfsWitI7CfPrHillfKhOLqQLPzwbI-OaBC"; e_proxy="AcQiIwMgqdP710bWitjuI923-i5SIxgGv13TB582cr-wBTq70rYOAFPRCJoKpyR33RQWegQj7H8INxdXckZ2", http_request_error; e_fb_vipaddr="AcTO9u5H5UOZmjeXISIRC2cZJtry5Eyjh_2aQX9CT08nxcn1U0ENDwseIlQcM3zU0ZVwR99M"; e_clientaddr="AcRLGqdE60uRXzMhqSN_9zWOzt6E67fb5vha-34BugWVk_Nd5M4x_oj9TjQwA4T_euiUv9WydkHXTla9540"; e_upip="AcTq2-FNuI90TW9gdywcabFfoCYsfR8Py12POrnldRaj91UssfmNwim6PKIIi7VPwvVWVZIz6Uh6Zc5YMJeeGbHlaTV7Lasygk4"; e_fb_zone="AcSbHz6x3BOJWoR7hC4lpJ5tWXEFM-XC5_S0obWgGJxTp-e4zT4-h3OkI-LO3w"; e_fb_twtaskhandle="AcTEJHfJe6jePUjQ7R1n_Mpegiod0P9ti8dRQ_zMkIBxHYBx7IxZ-HD1V-u9hA4JBZx28jEO-ReML7WSsDPuZkVbkGtSGMgetjndXKk"; e_proxy="AcSb0TtiKdB83ZfzrO0BxQMdbcr6TZ6e196TuiSxmkpe-xDfs4x6CZacknoe9BhsM96ZNUXPBFnnmpM"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=801, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-07\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-08T16:00:01.041Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-08\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 20350534,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 41078,
        Symbol(triggerId): 41076,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 08-May-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ApgRe2a7xwRalkkHYWnSPIp',
      'x-fb-trace-id': 'HU758JR3HW5',
      'x-fb-rev': '1039097315',
      'x-fb-debug': 'GlP1J7oH4l+xea4UYPsxG+fzctStu30jx06rDUeCe82VGoTYrj+aHq+SneOL3/VXnXF+fDSjAIGm4fbst4rYxA==',
      date: 'Fri, 08 May 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcTdgSoCVM9Y5XLdDuAS0zKE44zKXyn0LuQJfD_rigH4cCGFbYNGHGCZzQHRAnMG8vXEchdeJSO4K3TueusbTIBaoM3_dqpqaS4"; e_clientaddr="AcRyLqd6_rqRhxiimQ2sZn-STHd8rxu-IFsWvd5VK81XrmofCUcU-Iz7TZL9EMLHNKBh_tROKCFe2mRLolu40ZCaQg10o7XnzLR_gGliLpSEZMQvbg"; e_upip="AcS9IqkEe5KTNmz1kAWaVFscHKFmVQ6cn1i2TUKuItjA2Js4wJMFnVK2bYGvwC2FTHVaCH593lPLo-SkdSxsTjbmx-2V5iBZNCcA6OPCGzY"; e_fb_zone="AcRCJTWxV9lZOGvP-42RVHZF2PYrymzkCFg_q_8LoHKOMFGg6WAxDtXmNBBHV2rV"; e_fb_twtaskhandle="AcQest7dHLuyztR-XD-IeLX9N9Vxa30b6JCXd7vVEN3xMagsr76ynL_HD_1aDmnZp7N0VO08fp9SjDp05Iakt9kYwDgqwVlebvymrv1R1btP1V4"; e_proxy="AcRAQb1VDW2i7fnmQBip7kqjPqYsUQ6wvYbJ4itKJWVv4yAB5UPNc8Ggnv7op1HIVLlBdKImEb4Ep1DKquCm", http_request_error; e_fb_vipaddr="AcSeMFNn-XHMGlip8nC_3ohuUQd3wewZU61o0Caac9ODTc7RsB-fE8p3rJpjMExRhB0g0VzE"; e_clientaddr="AcR3urZ90H_NT67S453VulmoVlAFkZCaQAp4xXw4f5Pt8Lj9sG4b-BUfqMWRC3xl7UyL3UlSb3YKXzEjqRM"; e_upip="AcRgI2BWhh1xTxNmu9y0cB9Vx5NjECPd8Dy1BVwqL5OxJu9k5mwqG-mIBamMyTpmIjkWOcjVctQKFOP_XPz-y4jEk3fh6P4jfRg"; e_fb_zone="AcTU3oDunCGmR27Sp5tJKWxNZgvGqgzYDHkYDF2Rmv8zxlSuXiWC7XOvcg8pZQ"; e_fb_twtaskhandle="AcSTDNiQuQJWPXg8CU5zbiv09lCm4lD2dI1MyEpZqUIZzwQ2dCMMOkxlA7k5wxY_RqumXRB6n1T_aYg_ozDfq9J5rkADrSx0043-"; e_proxy="AcTLAEcKq-v5r3i_XYZAGS4iss0PV_wIBBmN3_GwqNxdyMyHNLn7APqaBtIbOxqCZBDcV8ABm2BOr64"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=783, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-08\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-09T16:00:10.537Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-09\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 106760407,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 215735,
        Symbol(triggerId): 215733,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 09-May-26 09:00:10 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'APhub6j5JmklgQAGjbmQAlq',
      'x-fb-trace-id': 'HP7jV9ihJ3H',
      'x-fb-rev': '1039173992',
      'x-fb-debug': '7q6RNTec07v7D+3nrrVznxoH8OLA3BkT/fdoyoMF3QAD2raI8SXq1e0S4HS3GySmegG0y/FS3xQsovkxcqwZuw==',
      date: 'Sat, 09 May 2026 16:00:10 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcRWaBPCeNP0l38qmgd1RHGrZyVgD9eBAPGbOce66_TGC3AxHpiV7Llj4GeUfXkehd4rj_wKTNNmXqDaXosBQkuZW5v686vEyPQ"; e_clientaddr="AcRz-FIkbCOM6cN5fRRLim31KzHepmbKGqfySBIKO-Wt-t9v_8zbfzgzWJKSPQxhExAQrk0hf-nMDUd0Ntd_LsRPeZfrVrkmARkseiwj3BRAnCuIhg"; e_upip="AcR1C41_QkK8AUAOVpw-VRZX5sIdXgt8Oau96BNH2D5JeXjG8l0NlhmsTLMk4xTsmW5xg2-owaakgNz-GRq1H9TWgomLzGNLoydn4zdH3tk"; e_fb_zone="AcRkDVajBqt_sjw85epjTEAvZ0a0LiZCvfqV1hh4jchNsJDpjSu_6fFRRo4UQfY7"; e_fb_twtaskhandle="AcTrbwdJwKjLwzEA5uiqZCgjrmmcjLP3LxtDucN5iujUGm0TxH-LyDlLtz7YDMc_78LTIX1tn_GP0ey_2AC_yyUJ9jBKmfCj6Nk09waFR-Sbbq8"; e_proxy="AcQEQI2zJ67JBwlEUzF3iqu8Z_0SUoK9WWFowJ_yPAqJk2YBzgfixdqf0n0v8L8UEl9aNCAe-CLLhncA3TKO", http_request_error; e_fb_vipaddr="AcQ-qPdydwZllEjaRsGD4H7UGoibAmwuxTWQ_8fsBKT5PA8bDMN8wOBIX8D-Djm1P5P3HnLi"; e_clientaddr="AcTrq6lQU9PwDp2fxta9khMrlb20AKnsHEmGj3cnTaCVoSH3O2cCaEYjQQqfpjs5jF257sonAdk7xMN9zT8"; e_upip="AcTrUOhdfeX49DlVdNX_iBaPrn6vuPV-HrS5nNwtuB_nU581kstR8g4TXnDDKEnzaYB4L4_bztMu6YVdwD6KbQegkiXPMy6MAX4"; e_fb_zone="AcRi2GX66kd2d0iOWEctUZoJ6BGtJKrlJ3Teg2UdrgfK_kfnoMgJDMlj_xY8vg"; e_fb_twtaskhandle="AcTv7Xcug3H1JggDKrIyx7jI2Pvc9Zmj4_saolSuuyRZi8aS6J_W9d9eszS6ALBJ53TDAYqDTwg3C9KGT5OdGjU8dopfrzSsEaU"; e_proxy="AcSbfUzmQUlkIHe0M03dcw74Z3cxHTvcoqTHsPDnvuRWCnL2vTkdctR3zYycgTSIvQ_4hiNKZxHi43Y"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=13, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=756, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-09\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:508:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:520:35)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-10T16:00:07.182Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:520:35)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-10\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    path: '/v22.0/681389405061633/messages',
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      parser: null,
      _httpMessage: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 193158406,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 390866,
        Symbol(triggerId): 390864,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): false,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 10-May-26 09:00:06 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AOC3QH4V3q3owoRfNwN-NB-',
      'x-fb-trace-id': 'FZXx1NxCR1i',
      'x-fb-rev': '1039190484',
      'x-fb-debug': 'ky+hWtMNbX8WcLYGfuqsL+LVQfQkzcopjsgEdo1mH/jIG2G//bf2s3GMhBd655q4a8bq9IS7vtk5k9NhFGBCyQ==',
      date: 'Sun, 10 May 2026 16:00:06 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcR8SV56Vldn1syibgSNPnte_wQwN_hexyUyhaFFGKh98_GdfpIJxV1s4bYIgB2ufz_RZIfW8KQZ8uXcR7FIuqwvwTR9QXAcGhA"; e_clientaddr="AcRfDz20B9OGnj_wMOes31F08aqt9sIpNuOmsSG_nmwJV9DT4M176Q3Y0KgR9ywTv-wNMlTqXVD6of00MVzTMt48oRD2GqflRFZMwTTKp6V8V6c"; e_upip="AcQg31JEe17cUUHVDk8Yx1mXCCx4ZA2zgcrxPzrqDMQm1offF5tjsFN-vx3vZfPXATaRNn9h9phqfkJtLE9nm5bP161q88aOxw72RUovdQ"; e_fb_zone="AcQoua4XgfihCo_jfBdlLql9Y9q9cebnmOb0TO_Qhbe7TL7oZmjwYBq_-FPvd8lu"; e_fb_twtaskhandle="AcRlKr3OyjTg7LQZZGcu7FFnEYY9VSiyhUj0jjqgv0DJjV1xshHfyPi89GVS3O42M_ZmBsQbJA1Ebjvkr91c-N1n3ek0_uNaIyJo8ezO8rHAdWA"; e_proxy="AcQuN2U6Bu3owFt27FTlpZTmmA92YwAY19cuLTu_aX0h3Hmb7YAIdREv3uaqyHm7bWN-3KvRtgxLdtTw4DS5zw", http_request_error; e_fb_vipaddr="AcRBLVeYe3L6nof4auJTZo4DNNOzm0813to91mGvY2v_hswwb4BPxeiw_nBrRL0Mj3saehsr"; e_clientaddr="AcS4aP3ANfty6mVsrze3IPhwy087HXc4jVdmZvr0bCgA3vFvoqJkvsWA7IDyIJ-F4iir0a5d4VD8Kr77tfA"; e_upip="AcTqq-abDqi8ooVqGX69xj60ieLB7u3iuVhy_DbzB4nbTdU_C5lS8Ogan1sP8fTu5BHl4KyylOaNOxSBe1ViPfr3kWECmErdINo"; e_fb_zone="AcTgCwIXiMvahIMFXrQYcZacs3qi6MAvZfgTUzkpEkI3sw6qA23-GuAVj_7_gg"; e_fb_twtaskhandle="AcS2TxA4ncQSnitk2WMNsd3TYUhZbdqWHEv6tbBciCJ8-7YL8lpPWE12Yx6PNthm7IOs68BYxhqPwfCZEttfZvNoSghfKVR8orrF"; e_proxy="AcQK_ySJAgujCV2ti44jUd9nPgsWMXEzzwl3gFd_sZJeelANWuy8o2Ogrep4r0cLtDI3_xuiGyu8Iog"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=799, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-10\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      path: '/v22.0/681389405061633/messages',
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-11T16:00:05.654Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-11\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 24861428,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 49661,
        Symbol(triggerId): 49659,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 11-May-26 09:08:30 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ATHmtRcmIzA8a_z9nUKCWhF',
      'x-fb-trace-id': 'CzZOclpsou3',
      'x-fb-rev': '1039215345',
      'x-fb-debug': 'Vqi+FVkOBMWRO9rHmbpE0ZQpJPAxnfXk1ugZVyNpJ2ztGwXv8jy5/TJBUON7AOes2SANoDo1XQYl8J4W0EqCAw==',
      date: 'Mon, 11 May 2026 16:08:30 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcSHRxH8DRcAwlEU2y63tT79c28XMJBlkE2W5yik2XGJtBbjswKP4ziaX69588fyHSSt2XZaMCPh3INCGoZheOMZkINXTmIkPlA"; e_clientaddr="AcRLdVpgWJ2PqErBlGXEhY8Yi63Ksa8LGPECoisCxULDwMSX_ih8AFtDCPCTsOL0YLSzo5NsSuPTmnagsTj1Wo8N6BeK_A1rYDnbd4Ho-p59Dfap3Q"; e_upip="AcQSwUR8esf1l5yjkeg3fFubuTa8FqtcrzquP_tY5hoJoJZ8MfJHBr_h_NZk9Y2GNBoiwa04SRQh3VlOBk1zVaIImVzWKWeGpKHq1dVCgvQ"; e_fb_zone="AcSqvXcFn2N9B66olmZOPeY4tq6G5lLzhd-T7bXAPDPigSGFIKRDVPgPnje3qR4G"; e_fb_twtaskhandle="AcRNOLmOCf4m-_RSBPlGeU0RKgpA7pSg2-ZWuCOuYUwVT2thIB-yInI40ldYTOG5f3ppHgr9Zf2nb-HwPUo6cQIZgWXO5XVWNSiLaiRobYMoNg"; e_proxy="AcSO4LEswU62FABzXHQJUIwQ67BMCG7hUcuCTJGx5SPhAplTQs8ZhcIOPheniQfkq6eE9jIGdk__MNHyNR6l", http_request_error; e_fb_vipaddr="AcR2v25vt3a2WOPRGH0wvIhEfs-RydF0ACmjJnrni_GcZfFgjE-BasBEmCAynT-_TtEwYlUw"; e_clientaddr="AcRjoAAq6L42pm2A0hrcsm35MOTuhaENAhW-pkRtJbaxcmPrORCH1esW9kNDkJ_TWu4zsx1w6xNYLEAPo8c"; e_upip="AcTIBXAlB2qjAKjbWT_7ssJ8_j1TwdP83vAT_ncpPmbINPvWH8Ugrr7-xibAFYS2z9bcrQEuu2WoZIimnFmBVn83vaGB2xOpBmc"; e_fb_zone="AcRO4DSRMTwbJwmIAIpNpOokadFXE3nHJDE4NIDZuQ-q2lOrlr2OHFTVZrjFEg"; e_fb_twtaskhandle="AcTP0KItbaA7iuHUNlglYl2Jse5Ud2miWi68AwE_6FUj49VeQmXvqHwf3eoSANmFGt5lSbUXgJpC-jAz1eU6sfGSLYijmHkVW8mH"; e_proxy="AcQqTuL6_NQzNmiL973scEgmaP2eJ5Y2PAkwkX7p7rkevpDUg0Necgk5sMpwlIfAu-Qt-RVKII4cxhQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=7, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=785, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-11\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-12T16:00:01.730Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-12\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 110753111,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 221084,
        Symbol(triggerId): 221082,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 12-May-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AD6WKd6MfPkvVdcuadKogDk',
      'x-fb-trace-id': 'FMMeacvwA85',
      'x-fb-rev': '1039317497',
      'x-fb-debug': 'IeQ5mFqI/Nb+EItta0yXG8ukbyASV3wiChwLgM/8xX3GeKe8/LBNVCsiK6aloL+YNanD8bR3YCga+LV6gusPLw==',
      date: 'Tue, 12 May 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcSdW5GFkpmeOGaQJWvLPx3dLC5sj6WtwUkUXUNTa7LjrLz03nP7OYxupX8mCR_bdSjM86XMtqol5HKoU0jIAjb3ZD0J5RFv020"; e_clientaddr="AcQsSe4cqNjgZt3Efb98dcXU19LON_YphU7MQs4InnU6WnfvX4OTU_Do5JgiqS0jsrPvVx_QHh8NdYmV1jarEbLpkoUtdA2rUkhTAaK3nruLfvCORQ"; e_upip="AcQBuUcIuyrooFH-D-h6agGG_p9adESjwe2CysWuhDdLoc56Zisghf26lhJXw2vCwDU6J3ULLGdRESS5ziS9hieW2TD_J-N2OCQyHLxcDw"; e_fb_zone="AcSHwAM-WE5LRGmzL_rDUoBbDUfVyLQVcuUO_C_eAc_9PBBgZj4cU3md5Eujfhr7"; e_fb_twtaskhandle="AcSf4GbVm5jam5VGqH_iaUkx-AhMTVTu7dkQOmuTunfhRAamYBKXvqVxPg9cCLTVq_MYML8mmGdxIHfx43U2FbTKdYeecnmwEdn7ax4SGzOLIjo"; e_proxy="AcQsDEvqKx8vKtBie8OOddFtBk6tD5_iLOH3lY_ba8vA4Bizc1jnkG5WZXqqfhN239Ccg6NmARKoT77xatuZ", http_request_error; e_fb_vipaddr="AcQLlfzu_K_q4kqP2ovcsszRM30MQBYze_QqZapDkDK4OpS7kSLxDdsr049cq8AKqJ0h2tA"; e_clientaddr="AcT4XFBpjIoB_HFpc1RkSBFgSwym5b3XfMjM-ur34MroUHGhyfBUuzlU6zRqgoH1TKyzIXl0bs7vOmz-3wU"; e_upip="AcQ71R7gd1iZ5LVx1KrZTY6suFy54Ot51L-05fqoTj5rtdT7TfzZONe36jcRn6O9EdKtpl0nAS-iBscB62_IzRpFKOlei_K1QCg"; e_fb_zone="AcQcya24PiUFw5xIjqp5QjLRyb78ZfskpRjdTie9hGmi0Oud3I4B62KVBKGktw"; e_fb_twtaskhandle="AcSKLHYAYF-NUqWBFFzLpQZX-8q0aWLIosWPaaIhJAWBpXrxeCYeI7v7Sy507dd4rjxWaBU8jftdMFMPyIUx2FgB9WxvCouxB70"; e_proxy="AcTy2fPYy2pDbV5zfxn_fJqzMQzIjyTRdc6LH_AR9Fz0YAR4fdAXRIY0xeGRtYI3Xh6m1wS8jyItPBY"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=791, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-12\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-13T16:00:04.846Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-13\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 28539771,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 56862,
        Symbol(triggerId): 56860,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 13-May-26 09:00:05 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A8LpbS_K8TEf3h_RNuGSxl5',
      'x-fb-trace-id': 'FAFdXMe6285',
      'x-fb-rev': '1039410630',
      'x-fb-debug': 'YlYbh7ZYF7ONGqdCWWtgbnG0wywTpLmVlBAA4azugBXo19RPye/NRc4lMXQn+k5TnbIpMjLMVxydmrkwWzsL3Q==',
      date: 'Wed, 13 May 2026 16:00:05 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcTB6MBDxoeloVn6YuHtTZ-VhYEfyQrnSeNA3DkI9dib1u5DwRdClei2XdjiLcutIG3o6knvYrATQHRcLevcy0N8iDycdEPxcJ4"; e_clientaddr="AcSEY8v_CcZSTMHUR0rKOq26VZLB89qj_aJwycDN87Xh9EzK-ZIODgwPEcO2GUgzQuEi1TIub7C2oA6kSzC5HxxDMUU4xO08PmzeTydXjDe8oMMSew"; e_upip="AcTxZ-c7JgVrhBmhAgdpy7xHoyoLLdMdZrhoeGbegnvoeb03o0D4Zcv9k2XFabtn5zeNYB7OlcGbmqXAaP3z3gjHGOIwrMmmf-hO7Weu8og"; e_fb_zone="AcRNbqc2lu4lREeFNT3NuE-K0Cfy5q4KLInNz97DKNJHVJ49z18PxdFKPoKkOr8Z"; e_fb_twtaskhandle="AcQp6o5vcYJHEc5UFSsKYiX0FHPRjA9XfHx18d9rnmwSIrI2tOWKaMz1T_Y8u4SEhidRwB-rGvMOn8lFM4PR8nd3G-VDdpJKZCDqbkltfAPYGuk"; e_proxy="AcSv7VOdP-swUPG33gn7AgDfMVerZFMYsPvsG1uq8Ud-v_n_GDkrTQzu8SFA1VnUpGQRQeJGHJXsqQQNfxGq", http_request_error; e_fb_vipaddr="AcSUFzZKVmt5EmzizLkE6hjcn2Odb-Tuup5-5L5BwQw8p7zg9_MIFu_yPyjfsehPOvLtIVPk8aY"; e_clientaddr="AcTPKBkNmwHimUdGxsv8QinvrDNuM-_Pm-YiyoXOpdpSmAEiP71o1Cmy5JZgfuE9kOkNTprHNV_c9HpRD84"; e_upip="AcSqkTu75eW7PFvtpNQzkcairt5Ob9DvidaF7XhdfNJHhWOGtudTJt4cY-DuI6JQvaYAdpFnNwuofSJZVaUWNQYjG_lcfZ6U3o8"; e_fb_zone="AcR9IfWMegxyqwkUNXlYQ22P5ZLWufd5hMDCgnmYpRXQFgvy_0Hs7uqGolgx0Q"; e_fb_twtaskhandle="AcQc5wRKDu1NzjtS_e6Blm4hA9XMEMuY9kh6tAHxSha1rujQK8CO0wtZAcQVU5t19eYm32DcSGIQywXqYmapSg2mpf0hltPD4LUy"; e_proxy="AcSrpS70GTotKlUtFeliNPMFSbKQ5FamKk_PhSf-CgmK0ZPN_q06GAExvXd6qxjId5AcQW_9EyV9qRM"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=14, rtx=0, c=10, mss=1380, tbw=3707, tp=-1, tpl=-1, uplat=811, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-13\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-14T16:00:09.222Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-14\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 114944972,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 229292,
        Symbol(triggerId): 229290,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 14-May-26 09:00:09 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AnLBQZx5uV67pkEwhpqReA3',
      'x-fb-trace-id': 'EKd8NaaFgyq',
      'x-fb-rev': '1039501489',
      'x-fb-debug': 'i2wa6SW2p7Iq6WISVJBph4H3BRnTcjcAx5Yu1Kd4nwr7wfOLEpL5dT3nnwWB/5Ec9LwixFgrDmaQPx3kDyeQVQ==',
      date: 'Thu, 14 May 2026 16:00:09 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcR1iB6-sbHmCi4pJO5sGdlAZXG8j9PeazWj_kwi2yGroAkmHBwnwWS0gFWsPfypWFieM6HI7VApQljax27xIDgGDUdIQpEGVOg"; e_clientaddr="AcRQ9VWizbvgEfpevN31eRKsn7HoAqTu63OLdrnGU3APYgCraamaOYC04-s4bzCvhsVDgLVBEVCQA_VGil0W8dT05C6Zi7hxu4Xnw1zbQnCreyr5"; e_upip="AcTYIHt-FAPZtA6riU9k-qWtS-KXCvrCkOzSWZcUTXLhYU7Jq4Ed0klOmMvdLEBQahQGpB712JTlfXrS0Cvqa7h-Ceao97zbtEJc2e913f0"; e_fb_zone="AcT2KmiXjicLsvuZPr-4s1nKqFapOLj5HmEAorfj5Cjiny3hdvOhfxVm4D_ujUEN"; e_fb_twtaskhandle="AcSsVHg7QmIyByLDuyBVeKgp58PNXBLSJabaMZywKjVqCm3SIciKo4fj1XlMKEcy4pCTrVBne6nFGsBU27rqquBaYFJ7OuWRqbTE632dSudMdes"; e_proxy="AcT5cWk6Hm13rbJv81hf1DFVWlBZZbLR-JxW_HbDAb8TrNEASxqmQM5e1UZJ-eWEC-FVaeyNfSN3veExtytK", http_request_error; e_fb_vipaddr="AcSstnZ4MHr9aqvOwvZ_cqIo54eFgWFo-8ghonxS5-Wa_1wZxVd9IXOAGIBdaEXnwRNZuy_poA"; e_clientaddr="AcSVYqZJyP1oyJ1605ogI-mGBjrOboNaw_fTHmXUAa46pv6NeUHr7BlwpE3qeXgp1fYNx0gE1N6ciEhSO7w"; e_upip="AcTXLLwte6yzgFQYkm7qPX9d84YfwvTrBx9PeJMPvSO7hNtt-jVh7BcEqlwfiT0y8IpOMprqq4BrlyLxMPpdFWFb-g4-9T197NE"; e_fb_zone="AcTGmxqhj2FcdFWNtxB2oeJtJgC1ZNr775zVo9dJaR7fISh16sOuqvL5EYOJCw"; e_fb_twtaskhandle="AcQVDqjnuloTu2X203fDn-BQ5eIS4f3ICCYv6lNqE9Wj88w18KD2G8Paqqx2ktE8rNZIdOkh2Jzz-a7kod9tgx3WQRRca57cigTz"; e_proxy="AcQMUvtTwneAQRLtC4jb7H_alCPCII6XZJckaC8ExJdRt8ncVhO_ETPXgj_1aqF95oUhRIEo-4zQzdE"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=6, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=790, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-14\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-15T16:00:08.991Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-15\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 20390111,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 40798,
        Symbol(triggerId): 40796,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 15-May-26 09:00:09 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AY2j-No6nZoAiq-Ctj5uEkN',
      'x-fb-trace-id': 'AOs6iDusyUd',
      'x-fb-rev': '1039593028',
      'x-fb-debug': 'NYzP7nuM66gvWBboGPl3VHZQROllPPh7fAT9hPmEV/ZeUD7ny7+gNWBrJ5dz/rJ9zHtinogv5Ts2oxz5s6nN+g==',
      date: 'Fri, 15 May 2026 16:00:09 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcSIfTn1l_vK0roCyUDlRwM1mNj0KCh9vRwkxC3AtWNgElQn6bF5QddbDco8sZQBz-5UwguXECiAnhaSZ71nCya-kNia7xWctsg"; e_clientaddr="AcSaG6AskhIq7R1fGwz_FKacV3N-DDDDGOKBqqX9dycJphxXA4fIiOzztXhOUIucXmrc6WpezxT3mpSKtISp8D2aiumP-fU9Mp4ANzGJYXmYbd1F"; e_upip="AcTiNDtXrgmpDT0L6NQOG6201Ay-NNtFTH8135AsyvyJIbwPHnBoAlAxayaZt2PzXlQAu9AzDVZg6310UYff7_eQSekvROW7GLkw45wAkBc"; e_fb_zone="AcS-A714jOSJvx2FsNZJwJhWn92LexHdWDYMjGId1pcCa66zq4NeQ5gMvjLeOydq"; e_fb_twtaskhandle="AcQxBo56yyGFq2PsBAKzhcWKIwNbQIfJeWgAE_stD8L8iZvt6iz1sqB6XJWTnE1HaQNz-eE6PwctWhpm5b8tjH08cd2hu0p8jlB_mafj28pDP4w"; e_proxy="AcTB0inCyGTfrb7rFH5zqtEVvT6CugPmpcQ4lriF_42PRLUvD75SSOhwoqnuXjDeIAoGt_K0Ns_TkmX_jo5YDg", http_request_error; e_fb_vipaddr="AcQh_5bwv47UiU-uNtYxh7JMMbE0R4pxuR4bwILZzwcmD3P2PEj1rQqKrw787Jn3tWxSKJbPCQ"; e_clientaddr="AcTsLKhUSJ8BVT_yj-RKUfF_KkUL8TyxuhrTGkjqXM9R1iJjTG8RnFESLS4xn2cPhVyjFCjupA2US8UpgGg"; e_upip="AcSTclCyeQmdLTgnqnTibTPe-wQFmK_cfRtTfgjIEn0mtptc0eEOKGSTPjix_vMsZ1KKJ5Uu9zW1KVY5GBXPuXU5vJVJK5Pc5Ac"; e_fb_zone="AcQ6r2tbFjKG3aKMrwYfUMHBbcZWkKsnGrAfNhqp3bFn9a7MIISeNcmqzwvTwQ"; e_fb_twtaskhandle="AcR84dJ0222m14n7jbhgTwH4vHvGqK7QoZjBjhFdBMHyNE8CHRQPt6m-T_zDjJ8OXf-JRm0rStN7PtCh9vUOyAhEK9OX9eMVJpw"; e_proxy="AcStlkr1toocpBP41eY7Qup7Bl6iwB-MJaWSpIAix1vRmxUikJmA2LjdZXXuv2W3Y05HDq3IRHQQJLw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=871, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-15\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-16T16:00:01.034Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-16\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 106783142,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 213401,
        Symbol(triggerId): 213399,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 16-May-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AIx-rCZfu6WZDAyxMAsYRl0',
      'x-fb-trace-id': 'DzRjsewQUof',
      'x-fb-rev': '1039659375',
      'x-fb-debug': '/t/1yYMteE1LVYDVYKJyMXP0U8ZByvD65E6NpJ+7BVBLv44Kypm8t7Qg77q4C0yg+tkvgw8OR3jav6x95Yo+bA==',
      date: 'Sat, 16 May 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcTlgcTrow3M7-_rte7DBGQT-lpi03x2K6YD7toR3inYCQx2vW8YB1eo_MCWmVvxop0LDscrpEizxtjWMGp4E5KoQXgRBdvLPW8"; e_clientaddr="AcTd-tKorDPj3_LX47BUUH3vT1AnAgBBYW_838N5zANIHgOqW9lE29U6_n9CuexAnR-cS6kDpeTB_e-EeCoz_jhbvRuYl0aw0C6ncl7npwzpuK7BhA"; e_upip="AcTqFlexakj6CAvHpBSct2tN9Ft8NMHpzfuvzx-_QsVb-GAwLMLWGhwwwJB32f5sre0PR96yNe_P8NktoAtvqNXeDG12KfljDLX12_uuNPw"; e_fb_zone="AcRYLWriO_bOPae4968MffTSv8FZJwZEYy8hrkXDKZYIm1q7SnELwC6oJCDXl1Uz"; e_fb_twtaskhandle="AcQKbzDOOvljMnfMrzQ7gs1MsFu7qdoeZ8irjWo4rebRjcemXQO-cdADStpu4iIY0KHTZFdrOJ_SEz8TbwwqNzFN9Cit0j9b07YLrJasOC5dLUg"; e_proxy="AcTIw_9xryLtLVhIhyJ3PnhnmVVLZiWLEqNyFSU6ghLh6NzkNqz8vwO5GVGSvXms7R2SNj2hWO_BYNhK6Tcz", http_request_error; e_fb_vipaddr="AcQ0WOLTUtSe_sGx0zZktf6xCPadpTYv7GXo2lszLll2euoxugVWlwFHY5bvFJ_XKrFSoqOZFQ"; e_clientaddr="AcTxOEOdutMhBGlqeIOLfeLIUXqmUN7mG0zBY-2GDsu-zzjGUAPhRlfzzGR3W76twUwCjav-ktpqqwVa52M"; e_upip="AcQQyr6kOCyVnDsR-ajOtBIAufP8YrWLPoV1VNHfZkfakYqcdpT6WfuO7aJz7M68-OPEk16_9KgOOBJSa4Q7d1mXqS3GjRBFjZE"; e_fb_zone="AcRBr62SkAOA0kAfi4ykPRdOJFZq2yoylLzVIMN2tV6ORxFBNNu858GI4SRYAg"; e_fb_twtaskhandle="AcT2wdpU9YVB0zacsPfrjt_SI1iiiMZL-zmJoag7aJpfhApVDHkssMxw2vTKoRCDx8yEcEP6dE8-U3yKQrPb3Wv9D0g75_3BHVk"; e_proxy="AcTy9aMOu1uaBdHvsmEFyCgiq92mywiJN5lWyllzyUy7KQj6NIjQb5kVVZAznwhiY2ro37ULnTSIhdw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=283, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-16\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-17T16:00:02.190Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-17\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 29090856,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 59560,
        Symbol(triggerId): 59558,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 17-May-26 09:00:01 PDT."',
      'x-fb-request-id': 'Aeza2iZnZKYQPbpjl7jDulQ',
      'cache-control': 'no-store',
      'x-fb-rev': '1039678289',
      'strict-transport-security': 'max-age=15552000; preload',
      'x-fb-trace-id': 'ErgeoUCgoNv',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      pragma: 'no-cache',
      'x-fb-debug': 'U4kXluFLYejUk5sF1knxCkIxG5AWaG0W6MgoL7QrhySmFzwHOD2EZ/bSAyFovAmK8bktLVXy8R/2s5vKNfTSIQ==',
      date: 'Sun, 17 May 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcQm5UVfh42TZv9WGOw7rcDsezZ3whbar6_FagivMFhueY85DCmt3BzJuXmzyt2Jg9tC3gtwuy4z0Pm5gfI4He9JtoeD-aNA3G4"; e_clientaddr="AcTWjLbVIlAVF4HROtL97hmlpelsjEOs81J8Utl3mXvm3WFhO0qoaCYUJl7eIWvElwrvdl5nnuIJmd0Ctl3piQ4BaLqosOqNIP43FKj7Vszy8RdmeQ"; e_upip="AcT4-HR2E2PpnLatTRJAzJXXQkehWncTNBSspyDdwKmCLDs7eQ_aKFxRkuZh_6hPVl_uT4eZKAhkKpa0ooZsyoRU3MlpkQiOktFhE54njXk"; e_fb_zone="AcRu1wm-07MkuXD79Ll3ougWP1LwmYkLkymb1M1Sa-xAeQEihBZrzFjyyXGd5B9Z"; e_fb_twtaskhandle="AcRcKQLdpIBkvzOnipk9rN31Yrcp5JiRJnayNbx8nBf0I8SkgxwoTi2dVo_Gf5pAURJe13vznDCY-ddOx11FZKSqn8TLhBsRE4lF1yk6aOA1bjY"; e_proxy="AcT7Oq1xwQY0xOIKkGdnall2LJCPwdhErs7KrpBIS7_WHxEKDSzFGfsvJLRX9WPYpb1aLeobn51PP8Iww-3D", http_request_error; e_fb_vipaddr="AcRGEvuOegJc2Lo-OcL2wpT_z74NhwnlqhPPWHKboykNfhGNNr4EqFnoT90aDhWaZMydFVx9RQ"; e_clientaddr="AcQXOPhdYFBf7SchBwY6SQL8F6srf1mwp_HspRaogWUUMCRH5oURfoiGkLyEXaMpjP6yCfeNAE6WfMsMTlY"; e_upip="AcRD8BPuNlmXyj7tWKZII9dhfMsais6ZY089hAYqM5y9VxBOIalBEwir_rbSgxmBtY_dXiLkjNG-C5OY5GVr-RlRqvsFsyA0LKA"; e_fb_zone="AcSzfBjKDr1gzTnMLfDQXDaEdCLCvBTipETZBcPiMaQcpvON3b-eju5-8Jn0_A"; e_fb_twtaskhandle="AcRRbQG3Ca0OCf1-9GF_C0yySyA5FXYwrIZNZF9uqUybD9WUju3xGmHLWff7_prfaxtjkF9n0LYrSUsnMT2ISwx84EmSCo-_iIQ"; e_proxy="AcSK1E9mtzgHaZLyRaU8r9g_OkvbeZHwthUC4Wz9ONXJpC6B2yP8uzxT2LdBtnIkzhOeG_MSGnDU7T8"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=1487, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-17\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-18T16:00:01.596Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-18\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 58791869,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 122135,
        Symbol(triggerId): 122133,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 18-May-26 08:59:59 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AIaJLSr_Dagj1Tfvm07i0X1',
      'x-fb-trace-id': 'Fu0NIQHNMVs',
      'x-fb-rev': '1039703269',
      'x-fb-debug': 'xmRc8WpdX2lAsptiRsh3Rim0TULSc9k+xIl/1K3N4RsykPYBOkF18MF36yt09UNzSK7d5yikWiX3w0Vpxw9K4w==',
      date: 'Mon, 18 May 2026 15:59:59 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcTIYSVbjmbSjf-EuXA8-ISRj4_u-Ic_n79Vv3equvaUOyfnQPu1BL6d00HSiNePXzVJQlKE2yijbLmdmVMoDiwSQiYCO6DwgFM"; e_clientaddr="AcQqbPVjnxbvPrQp3pf_hxKQHmg2iSLdutptDBDNlin09H2x0v6kiCqzwN0ZPPCuyEBGP6h84FO_V6PgDEKSSHRguG6Sv8vecYaQT4spFHJ3q44-CQ"; e_upip="AcSPJCs2qMHzZphNZj5rIMdU4GcdT4dNzZidEj0d9U4LZUUHPPbXojK5tg-sA9pBXCrIhfSX5MP01PzqEU0Wp2WJpye4auuBqAE-L5GlTpk"; e_fb_zone="AcR9vJgcty1b2Wj6TwYqPA3O4wldKH4GHtFtsun2a9gk9ZNjVZwE9wRlB9_IeF4x"; e_fb_twtaskhandle="AcT3DpU5GpBsGbxS7CJPwHLa-TA3_zwxDo_OUxRbo0ZtSpgUQJurdzYITLEqlaSCcqZAnNrqf4niT33elaWGJfciCv3Aoyh6XWly-pxUTmCGU8k"; e_proxy="AcSq6Ea5XotSrUv0gFIWBwApddw5A-UstTCv7NurdSsXZWOSBUX4WUZbus4N3I8vEWMpgcooWaobIuGLUpgB", http_request_error; e_fb_vipaddr="AcR27LsWk646HNp75s3biky5vBoDqaAcEX0TBwzBRnPVm7CliV-LJeRKgX_2jgIXw9f2UWQFjw"; e_clientaddr="AcReRfcZJiDJn3u3dKYCzAJ3yaahgg8Evj2msg2IjDJnkIEBRk3edhteFGK7295_N-CWR1HD90wQUN536Zk"; e_upip="AcQGdlb8lIxvTtQyUE8PEvX9p6UL7XLWkQ9B0MefzrhcbtHlqdabACr_185VP5QvseUlajpStTjb4FhwT7PBtYiY-NkYzFsZv9w"; e_fb_zone="AcRbONPCAvadd3ugwtruwP-f7lNaYUIraOIU2UcFj0EcsKsvUkM-Phzgx4UnxQ"; e_fb_twtaskhandle="AcQOKgMAQKpt-wWGErxAGqY26egI26VpyesLFT3ABTmkERZnJKqkGipzb5uoyRYhm0pULfmTib3ejtiKudYEQM6kWGEnRbGAQ7c7"; e_proxy="AcRn2Oo_aHq3gAt54St5QU8RmSzb3uCH186HU83oKcLEN2tr5soyRKy4PCRqHXkT3OAvW3b_pPebqJg"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=13, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=887, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-18\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-19T16:00:01.956Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-19\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 145192229,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 302466,
        Symbol(triggerId): 302464,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 19-May-26 08:59:59 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AkEhg-sGcuM4oq_KMa3NSyj',
      'x-fb-trace-id': 'Gto0szx8Ga+',
      'x-fb-rev': '1039796090',
      'x-fb-debug': 'ulAes7kV19YILL+iwWNCfCvdqT3Lo1i8U6qMqtbTznray2eDaaA0a4iwGPw/xGAGwnXl29k0jMFWsClnZ8jprQ==',
      date: 'Tue, 19 May 2026 15:59:59 GMT',
      'proxy-status': 'http_request_error; e_fb_vipaddr="AcRh5zupws11FL9ephKhG7facBkjKxkIe0XDOY-O8Vk8vWeim51jGSm8KOqIHiEADa6TPKAZHPH_ikmOxQl46oqTcpgFXbZZ1gU"; e_clientaddr="AcT4S1bNeowTj1QjWs4hFfFfoOoWSAFlCgqXiqM4pj0msOlGoLhVnonAHUQwQ9g9NHT6Xt898UQcSbePMtdIi1FRfWYmUXpUI_jvKu19z90gZlQg-w"; e_upip="AcRtbYSIaKDKbEoo1OWfApayXLiug8pSvzt-VUBjgEstf9KrPdNq4UI7L0GOTlvXT24AkoPun0nVy7YCaootrGC8rso81ckLB8oyYSkzdHI"; e_fb_zone="AcR_NQfgtKh5eznAZkG-vCQmji8BZtad3pu5SrFNafxFnJipSuFdY5lU2X3LvlMm"; e_fb_twtaskhandle="AcQ8AqNvKKLFbwDCdY5g405jtGnoowDKT3Fgy014WuJPQt8EFSxbFYSum2I92TqY18PBSv1Vv81cqIBxoAFJ4Lmq1lsgwbgVArvkFS2L6J39W_g"; e_proxy="AcS3FyYd8X8iIToqnJm9EN4zGe2xQERCyuHpLyKvrMtWB6mmatCB3hy0IOUou-I54YkxvxDO0QCqc2iUNiJk", http_request_error; e_fb_vipaddr="AcQj5hIOGGJueh7upQx_Ldbpaf25QdrwAEEUSUIYmW6Xw68A4ZYLaf3rZMViHTiGBvATRoRTaQ"; e_clientaddr="AcSDqg34Re8Vc8MeVg6h-333mMSsmcLj5FC9y6wKM5MmT9-A6VKzHZGF8P9DSucmeI7LaY9qzUzDS9m710Y"; e_upip="AcRywQ7Gd5s99UnZezOXypGrReTUGPsgMNguqch3eD76cm-kWRUUGkEYSL-YLJ-x5uDKao8vnL_xVcyFXss76dbSx8S3ySbmQA0"; e_fb_zone="AcTVyRp8Zoc-6JKj6WTWujJ_KXgCgGNL3sGPgW-ZhWpN-etzEx5Kh-P695rodg"; e_fb_twtaskhandle="AcSemxiWMaDhQq28ZRAHQ2wgDscPQ6Vn7ml045yBTc2g1iTOby85udnc_19BfB_9J1tdyjVUwt6w5VfdLQATaNJxvhZ9ii9QrXOz"; e_proxy="AcTQOR_d3_UwQkJMYlBV6nve3DGtNS_U6V81JQ7qoTfgT58Zg_Gic9rD4csAzHBXNWe-xg3f6dtI_oo"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=812, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-19\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-20T16:00:01.836Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-20\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 8313103,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 16960,
        Symbol(triggerId): 16958,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 20-May-26 09:00:02 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AWlB_AKSPCK99IaQ5Wl2j2h',
      'x-fb-trace-id': 'CFzjqXyoILH',
      'x-fb-rev': '1039868526',
      'x-fb-debug': 'IQRLE2EHub9XDiwqRIH1d2eb3EcbEim6tZt/N3F1TndEv5P0qk1uQPbo3kQLp0ZdEUMwZjIgPFrl8vxybQwg9g==',
      date: 'Wed, 20 May 2026 16:00:02 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcT3QFFDFH5keps48A2f5e3p4LMZ6thGGDyO0GxrH2zW92Lu3Q35f07769wBKcHmOdmNh0Sk5xpiPOXAL9k6"; e_fb_twtaskhandle="AcQzuQUz9vl-z4GdixMSXYSPESgc1dNgnvjKyawUuSt5BZRW7tSQMk5mtIf16vLdvU0O3yppE80uJdcs-Q8PrRLoGQ7GeLbT93Ik4WACmk_SYuc"; e_upip="AcRb6Nq4ob13h8OI8_RcC6Tvjyv3RSXOmacYHHbgNFFa1T8wOiOkiaWakzEaqKhb57xyqvhooP-EoAKlEPvntesmZSiop7g6hIbDwEGz2sA"; e_fb_zone="AcQMg8hgMlroetQeNw-Mk5cEFQ1GJ_XRuUmiLWj8zMu6g8bYQslsRy71BHMMv5dk"; e_clientaddr="AcT4eI1XvKlaNvZQN3goowdNSKlytvKsmi9pnpiWYnR3pdHWPIbsmPkE4UR7E2BJ-VJM6fZrtgMiQ8_ohzmBOstwqHcBLcTPEhexXUpUip-4Fy09nA"; e_fb_vipaddr="AcQ3PEY811zWl7hgfYg2RncxONgMudNFi1bOBeXoRcjiePhePA8KtTuZZnM_Jo7bsu2211PO_W-ywzSDVtP9Kh_sLJ4V3XBozIE", http_request_error; e_fb_vipaddr="AcT5EN_XZEpqN0zkXcMPXgId1oji-8vlMkF2rSOi0SdqHK3fUEPva_4VwEe_uU9OvInLLQLj8Q"; e_clientaddr="AcTB21W9O-mzvPWxFUeojVg2Vp-ODP28OGV41kn0OE4V3x2ei2VIhKj2XycR8twPfXF-o35XQZHO8UStAcc"; e_upip="AcRHrkfu1LzZPPUOqBlkWHtjDVB9Ngy6fw7aAcxrpi9-0feCcf2yfxmW9HXnUiLaLYl3H4h0BTJikA68FJiaAE2JZClFuT0V4dA"; e_fb_zone="AcSTDTs0ZuBMVyLPe4npJGjeIoVr1ycSaQxGuPQ72SJty0Bmcql3UqML6a0U-A"; e_fb_twtaskhandle="AcS6dtPQwD-I4gDvqCEZOTj9N2_jm6j6LPzi0ieSHcdGA9RQ1UcWE5ldZc-idVlCeQbOIhqSVWTOR14udOjYMwfg2GIxAjkToTc"; e_proxy="AcS3DpWWVc68ho6d7s3Ls9bMw7oIUhZ9VbHOJlezCUw3ObjJMemv_l4UzmiRS68lGS5SUH7jMgSCpBY"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=13, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=837, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-20\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-21T16:00:01.632Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-21\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 34040629,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 68304,
        Symbol(triggerId): 68302,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 21-May-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AKrlWDvn_KFmS3vOL_2eKZJ',
      'x-fb-trace-id': 'FE7NI7nfOj1',
      'x-fb-rev': '1039926988',
      'x-fb-debug': 'dEWfYsrUlmcNZTfmKUI0M6OsFXWO4Mf91SG032/RUPHSB7QjblNp/qbgfKKXEYVvNv7+vOUBy2kAjz9yWIwiqg==',
      date: 'Thu, 21 May 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTjCWkK2DETsfOnExOAQOdLJm8I0zl6jHKpZjfh-bdrbr0Fgsi4NWMewUp2_WmDgZ-ykS4dIhdm--0kUXqe"; e_fb_twtaskhandle="AcQV5qsFN1ED0Oajr88dfglIz_lpWasbMBJqgCpZTiVNLVUqeYhuwbwNchsjcRt6YaQQ9R2ZNyqaFzGADwgiLxO5ZbAEDBEal_qTkF9wD2z99DY"; e_upip="AcR46ONndZ6ZfpkLLAyxqvPMmf6ffXwBueEHKuk1iTGhbXREYO-ZoU-d_4X9NvN75S78YIjc8akZR3gvYJjMWfgUMU52Qxk7mKEhsXC5OHs"; e_fb_zone="AcSf8eQupjnK3riSm60chkBd95JGDFIMaFcycyEfUt7B6nd61rYmYjf2GW06enMI"; e_clientaddr="AcTkT0-d9KWE_CKCoigE7B_mn_8YVJYGTiR11zWVpdxVlF9-OsrMksXrT8STrbkgu5UJy8EeroZPQFQat_aSrZLjpzERunC6eu-CalxZOZ49yVmW5g"; e_fb_vipaddr="AcQbgZha6GpGyh2ash6OdYM4s-gdx76T1T3QsRpLLV11Gjt177ZxOqCfnksmEx0jDgNjSYeI7ZGP0OVnwvpEYfPXZqh-Ed7isAw", http_request_error; e_proxy="AcQL6uwRpnBWYsbn9_Jv54pt0A_0DrAF05uZophLM018O4CwP5hlh0HzBZLFXD-ylGsLjN4byEv2YjA"; e_fb_twtaskhandle="AcSt4o3QqqaeG2BNCbfWLvoC9zme9qDg7lz-bRnwfoUCcOQ9G7kzW4VWtg0ELaeJ2rfpckGPWgJzGRCAsnJDWc2CDVQHV-LKCzhoZg"; e_upip="AcQESE3w6zY2Irckf2kBzfkcb4G8IW7kHweujfh54c4U37cHK5Fgi_AK7YxALJ6EETAJxdKUO-fthjctgSC1Yv1u-tuI5kGzF18"; e_fb_zone="AcQNSGTfIfO4DOqa1Se4ful5GphbPsf_L4azyP-dezno1rjhQC4jjw2VdPpohg"; e_clientaddr="AcSHzwq8o8n7y6q88VSno_utVIzSnAn1FW77yAUYcAmHYfGv7-zxQkVZ_IX7zdxssWMU5Q2-EhgSa9pws3k"; e_fb_vipaddr="AcQ8bJxjbuP1sTsf9xDoxoWkYgij_QSLoiXQi6OTJfq7jp0BJy7bj5fbkK4L_9rUMAgSgVHbAg"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=830, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-21\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-23T16:00:01.742Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-23\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 85304401,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 170935,
        Symbol(triggerId): 170933,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 23-May-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A_HN7gR8nqJeBqqopgrCAVg',
      'x-fb-trace-id': 'BhdmCF+QO2t',
      'x-fb-rev': '1040065121',
      'x-fb-debug': 'eM6EhOtWsUSozJfbg7SLL3wB+ei2AXcynBIMCAduk0IXUdj7YGKXFoPjXwmoxsHRZxzi8b/24fF92p/PhXYNtw==',
      date: 'Sat, 23 May 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRhR1B23JJJbrse9BVWxBhb2TVXo3h7AlKfNmuAhoO2_o8Db6UZgpGK_MvzUcfDsZxXixehDMDMyvd15lhbhw"; e_fb_twtaskhandle="AcQLURbXCFiEuFjUBzmL2k1ySaH5ZnvwiW3U6rDEQclINeJ1jCVOe0-1Fnsli-XJq_AohpLdhRjmvPz1WnljonPV28Nux64-RC5kG5777B6TJEg"; e_upip="AcQVRDf2Rc-jqH-_yuZ3KuNIfTqk2dWIQT5e1fMV-FZS9x_tUffuuwz8zvA_3tDylcErGeWvWrSSbNRZaxiTX73Rgcm4-EgD_RHJTpifXQ"; e_fb_zone="AcR_3Tv7wV18yYHKhCD5Mmzo66DHakf2eW6WYRD1TtuQQ86k2_hgz0C6e29Cs4s1"; e_clientaddr="AcQqon30J6uNGlZlh2Pj8vJPmqTvyd3ZQSqapEvZsraorlWj9CGmFDAE26t0KUSAGcMNF6UluXh-xTogND6KIVCE1_ctYYcOHEyLiwWTWZEFuPeWQw"; e_fb_vipaddr="AcRS2RefvSyypdXt1ySgHkruQ_w8DFYxLntidXKWcA-nMXoJydaGct-1BrryZQU19HYkWS4X4Enf1AlLzgH5h2XsTFuEtO8PYgg", http_request_error; e_proxy="AcSMzitCHAybb4kT_yoquQAedJH9qIKmKY5E93SNcNF75xwblmMLTkPnXGyMCyMwY2sRjkG2kW2aS_A"; e_fb_twtaskhandle="AcScue7fZNOEMo21FJYrxrh74Ngr6q4sj7o1n1r97XYun21DDiyFEQfySLZkoQtRWR40Y_FfGQZMtdabcMrWmD39G6vv04MTV6mK"; e_upip="AcRq7NkRm1EISKqRW2j1Yw5puLB2pW6f3Z9C2FRPtfrhqZjTot90dr52kx0VYiwwMM3hysKMPGYmFXL4MIY1COYCR3LqeFIeO6Y"; e_fb_zone="AcT8lfwYCS8Usxdoy-KiXBFrDUnd97dg-dmbqJ2w9oZz8cSV79Y90PzlgIXLzg"; e_clientaddr="AcQSawWxCAp0lU0h6cvbXqh5iSoCpVZvK1UO_NVoCkCsj6dPmGYCbtOhpN718B_VOBZqqcEzDYNM32P6BJI"; e_fb_vipaddr="AcSh7PGOU8c09IluOVwREyCgPlZ3zw9WSPZvbLtN4reUocLPwNeOjXIkcX7dfOFcB4gmNtJGNA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=780, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-23\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-23T16:00:01.782Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-23\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 78518999,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 157297,
        Symbol(triggerId): 157295,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 23-May-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'Aogy5xPAb4lRrLZ-h32DO_m',
      'x-fb-trace-id': 'BRL/uyJL8Ob',
      'x-fb-rev': '1040066650',
      'x-fb-debug': 'D01SxbCUo03rL2E6T80SUDJSBx7prWKLB9E8HXZM0xEtdISrdFO6T+IsrYdBD0Yuv9GVfCn/4M3R37yLZsPBDQ==',
      date: 'Sat, 23 May 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSscTJgymJVqBnDFCqM8K8hDB9YHEAV9PuE3T3mlP7CFXyaimajA2ncLUVetxTX6jHfcpu9vlpZ8fJS4f8d"; e_fb_twtaskhandle="AcS3lqZZ1-eEcOxe3E3IM2OpGPh4X014ldW2QXbTVTwq1a1t7bm-JVbLaTqVO5a9xSfCkR59ZfQJI3w7TC3D4xuncgMv-CwxQlrzBnWnZARl2w"; e_upip="AcR-oBlgs54xjmlkQF8YC9KWHHkAGQf4VYPJZiUfAK5Z0og3cKGryHt4345zyVV1GnmkDEvEe8KtB05ly6FgiWqTAkZRC7a4Kq-GaN-UCw8"; e_fb_zone="AcTDAiI8C-UPPoSIsACzjKDO9v9zjnCWSBcumfp-9KKypj3KLvCSN-4gEBIs62Aa"; e_clientaddr="AcSsAOdGo4MIQTL4sEE-F06Tbdp3lNc58CbPSo6o0EE8MbBXM-52A6FavNUnxDDYFN7RdKYZXwfW8zupOPEBaXRWcjQpyH_omsv15OpGLuoODNfs"; e_fb_vipaddr="AcTe-d205N_YA8uat32Ls0FVMHmggtJupmH3K7Ae6RvaCtV8E50l08OQVNr1vblE5YYQs6SQ8sjYsr2Vgk6xetSWxOq9ujoOVqw", http_request_error; e_proxy="AcRLciAMCaZYJnVacmFnoSl5mTxdBXeztgRx28xVTOXJtAuvdNTceu2O4_I--ATkBUfOkqk9mYTcrlg"; e_fb_twtaskhandle="AcS_8pw2sLs0bCRHp1wZXDDrqAuRWac6-lsmOsuKNcjr2ocZB6RGeCM9cm_3_bFxPAPmjGvP4RoVl8sivQ-rwrhKFS4F2EWrmL71"; e_upip="AcS7mPzoRxGegv7hxRStgWcs3kBmeUCtr3K3satR85dStSrOBAY5BoJKDRO4w6M9fRNcbLNLewMPy2uqaRfvMrjAQEl-tBROJZg"; e_fb_zone="AcQYauX_lKy23MTLRQpc7tblGfztrrBJAY1sr3VF2l-X-hvICibUmUA7uQadGA"; e_clientaddr="AcSXJnB0W8Hv-GbG1_-4OXCb_NMdunAKXWzo1NHIV8o9JVvxxD7_p4SmDFYp11kRuygfuRB3sA3363VG54o"; e_fb_vipaddr="AcTrLsP7C9r-Z-X_EI9RmMQVY4T0dEJAQvqH1gAlxC0ivquzpcGWF8uSq_g-B2XO-PHQozUpxQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=735, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-23\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-24T16:00:01.164Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-24\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 24197474,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 48688,
        Symbol(triggerId): 48686,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 24-May-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AXMJhfkFEsv7sdPrkksACg0',
      'x-fb-trace-id': 'E2OBfVCujXY',
      'x-fb-rev': '1040084426',
      'x-fb-debug': 'phz78o5X9WAAFXEFJgWdx/tFjI0MnJYaxUkVNcVg26k64n7Pk7Ge4RE5boxK97zN/v0fLIgjPQbeZHkiqyeMGA==',
      date: 'Sun, 24 May 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQxwrvrCQrqTzsfGaiBIL4zC6LaJSe6KLvc7q-joA_um0i1AGr-wKrMnAxGrtHmNPHcXzVtscqBqnmd088"; e_fb_twtaskhandle="AcTHzXspOF6YMQyfFgPr-DYGsfcjfhqd2m1ke1QHEmc4KQ44XzeCmFbTfiVFMAAbsj76qCQ3JbPW22kvG-0FiVOEelIvetWgQyWivaLuWNoGwf4"; e_upip="AcRM3RGDhMwAa-22u8hblTRlhj0KM5sxo5SPq4dkcTnK0CL_J0ErOQdUfiDTep0csRueckRpVohU5KrqPhjLnxGeH-HTpPXo_xmAaRXC-zs"; e_fb_zone="AcSAS2WUJ26yw4M5cfYKN6iYHQuMLjLW84gsqwsKi-lAFG3wRiJAX0_bMInmGtTB"; e_clientaddr="AcT_6KPjAjxuHymmhX7S3d5H3QBUDPnRec9uT3F4OnSYGpkyyaexrNQxT19GKmtVLc5R-Ktx490t16xkWpkONh4gD4P4FHwKIUWojyBfQQr5kYULYw"; e_fb_vipaddr="AcS-fzSRjDwp2o94I2ogEDlyRiPEFuAszTV2CJRkTpG3iJN-rgpz6xMvtW2ekgLGOpYlySdPm4TBFA5G8MuAiBtpxRSTlhMPd9k", http_request_error; e_proxy="AcTNpgV2ZQz02f0I5LrF6FLTUaLEiCc2v57Bm9eZk4oZ1ROspmfAr370xxt2-Zr_fESiqkqqdwfElXA"; e_fb_twtaskhandle="AcS1bHeYXKL0cesD2kQSw53fRbVs9C_JXb9BWBAa5jyVuQc4vYyBJNEmxGNdEooDWtdhGrxUrkkROOrwZueHbv9bGUMZ8JLosEs"; e_upip="AcSwwAlpwMESIXm4N51qCEU4bk2nDgBaVIbuDk8LpYgtW6o7EYtCFD7pdJ-exLXaCY-IygOstwRq_GZKgTEhf17RiklheKsPak4"; e_fb_zone="AcQqnPsxkeWBlrPc737SlNaQh0_lCnCP3m12p018dWbSD3XK-YBT78uCRKKsBw"; e_clientaddr="AcQ3U-V3Ybo9wu-fe3-m921AjENHuGiL_qMIfc0jP0w_vG_mbz3Rsgdi_cBUZ8VTF8mQ6Fsgc-Dis2KQR6Q"; e_fb_vipaddr="AcSoXZZeJPeqin2ywCfddd0-L7JkfO-q5p0Hkn2t1fDLaeHwXUGKC6asGkEvQ_PJSVdmSZUGHw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=816, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-24\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-24T16:00:01.195Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-24\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 164919995,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 330141,
        Symbol(triggerId): 330139,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 24-May-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A-atMBbLSSXJU6A00SULB4B',
      'x-fb-trace-id': 'BUS9BGSqrmw',
      'x-fb-rev': '1040084426',
      'x-fb-debug': 'qdRbOdgF/V5qP0W/mM2X8Q0taGU2aU1H2daVwC6Qnl1dC79l8bzD3ECfEwRYr1CvsRfbmJRuQVC3m/W3ss7sqw==',
      date: 'Sun, 24 May 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRANHTmEzTOfq9Wh4Rb0X95y-9UkOROAwklLIkFPu7J74nEjOE0VHAR95BchVa7QiLrVMEOIhamB37F-LhF"; e_fb_twtaskhandle="AcSNQDjfCXXJ-sb1cqzbhO6Cu2yRsL4qG0TYEwkUgX3cXZBw7eMCx49YTz3auiFw-wa8pHcUa8-fJmZfMxPUnEbvEE8AdmV-dMc4CASat0RBDRU"; e_upip="AcQiX29OmRDOLZsgbnT4MBmFD-gaiOfYvvHPNjx_hT-_3mb48n-WMjgGCKJOT-I30XXtAOatThhTP5-amCe-uBTlujfovuiQ_z7QfLHUyNM"; e_fb_zone="AcSbmBkkERca0QzCf3-cGfaNkO4FBeZvNbJ2h3rckOEFdHwL4_-8Fv4hRkd0Y_cY"; e_clientaddr="AcQAHA-jFHfIK2MSRbzXyJbeGwNco15ETlxn-72P5iKr7bU4LXSLzAoFufSN3St1ZKdq8HfIgP229-Uwx-ty9pZuZIiPEOEKt3JTXX6Cr6Y0bqlQJQ"; e_fb_vipaddr="AcQ66BfER04e69ypJHKDX7N1aFU597yRA8W11kyeIt2Z7y5RWizzIbpb1rPj67Cx8aiBVFGlDl0fj7xkGQSedO0kxCPzEakhGCg", http_request_error; e_proxy="AcTrZxZwQLlaj1Leso7AnFpVHfuSdlBP4XDwzA1d1X07MZ3kzy0ZuXK17a5rWYAy8cFLMZo_eDmJw_4"; e_fb_twtaskhandle="AcRWpUij6aNu4pEVXj7ltp6HUyD-HuV5173BXsGUfi7HyfOgfoGwCCih_X7vHE47s14pQMLxLitgVmQOy_i3zvReIOlJlvL3qOGg"; e_upip="AcTPK59e_vG55TONiMNz1yMRzlkP7qGdwNpBbI01U2GIfITrrTGawL8cdkp2kaOOZC3nCM1aLahnlH79EC8B9bD_LkMQi70khso"; e_fb_zone="AcRoOwSrSVjY7VDYUIKPLK9sGXqE54V04zNrtagSqHiL-2G0FpIOwKjOU3Dd8A"; e_clientaddr="AcQwpPbvjKkZKomhNDPEohUZ4uXIsPczNhnabWdCNf2OhCIEqbcsw_Zu31krb390tZD2a7Vb6t5_dC24GWE"; e_fb_vipaddr="AcS-R6Vyv8x3KFCzo65R9_-tylpCqCz7h8tZ4IjrJYRRqnMYkwDTFYPQ3OCd2hhuYbbvG-fDFA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=838, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-24\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-25T16:00:06.657Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-25\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 251326804,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 502937,
        Symbol(triggerId): 502935,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 25-May-26 09:00:06 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AQmHADmN7Cs2Gyls3j3Fdpn',
      'x-fb-trace-id': 'FoITZe7QOEf',
      'x-fb-rev': '1040101991',
      'x-fb-debug': '5d9Qedg3AL2APx4rDBarWJoFOZB3+W1oeJQKuLdRE98f/DoCOdNOSf2Pxqcj6jJYPFp8W7qcB+xGxQtZS1MDUg==',
      date: 'Mon, 25 May 2026 16:00:06 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcShhgPMgn5MVTb4m78JeI3zcXSFqtJ5Dcttudlzy_-UWnNmTFLeBupTlJlUH5Xr56G8WcNCVQA5L7KDgP6k"; e_fb_twtaskhandle="AcQaWgskdo0LT_HI0BvId2qGd_kmJh0dTUyW7z524-Gvp-25qpfg8mIjJxgmuFCfkudHP6b1n1AMMpvIY84Sy_s3-VnR2UA8Iq83688lF-EL3Q"; e_upip="AcRLUwH3zoGq7jDdKS8g7j8cFY_3XIjTUnYN1aq6b8RzpGfNKI5WMvn7kTKy2BC0eIXG4ev08pmR-jhRQ8xGhPeF1Hrb77zlPavY2Cslo-w"; e_fb_zone="AcQyUlrhdtVnsHmsB91H-y0DyG4OWyxb4d_AgzM3Zi4ZLy58a0On-RcDM5_kHpap"; e_clientaddr="AcQUoo0rYvY_OUKXeC1WXXiaCqlwAgk1C2PeiEk6pc6Rs4xivC5ZXhNgV0cLf3tV_LGasOPamkdV8w7vm4SH1AeIONjie4LRcB1ZesuD-EZkNf0guw"; e_fb_vipaddr="AcScrJE2WqQVaD4RXc1-6K5Innb7zM4aM9pBJoPI2rwvJccZj4xyUYKGBnqNYyCfLd-ZBpm3wfAgPzWjxPwoCBvuCO9KWfKH_70", http_request_error; e_proxy="AcRU5HMoSC_Kw3uKbMuA3yPyQyVRE5VMAWv3TKDABeNjFmEz0gz_ozpIVH9G-tN8A-H6LkE8zJ47oWY"; e_fb_twtaskhandle="AcQh6JwaRklNZSCB-wAw-ieehoUyNRdhEB_KfNupaAvDVfYDUjKa0NObtVPaBc37yhiUry3SC5uW50S2-GTnKPJvhWUcdIMlqAQ8ass"; e_upip="AcSEwejw9wBv3TJc7zuwV1IpFmSnHvSnMVCyt9c7bWuXKbfAbLPo2hU2ToZUJJlm7kiakX6kSUW9cI2Gj0DJHLXeeNCvi_ydEGg"; e_fb_zone="AcTZmpsgOwJfnLZgYIhJaqnUcCptB-w1uqdx847Hqb3_7cg-_bOK7Tx3H7JGyg"; e_clientaddr="AcSaCXQ1VVwZD01tNsrRetC0MsmR8N4GpPeGDfcPtSCDTZ8uNWyJNIxXEBPoBwHQlSon5Ss1H890TBca9HQ"; e_fb_vipaddr="AcQhwr1b7JJTVGN32rKlFCARdZz_cYzH2IaDySXpiNFTVgeVzY6UghLXUg7hRTLYjx57bKjRIA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=779, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-25\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-25T16:00:07.444Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-25\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 110605102,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 221505,
        Symbol(triggerId): 221503,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 25-May-26 09:00:07 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AWitQ7n3ip3_aQcdc8_MCYJ',
      'x-fb-trace-id': 'F8Y5w6YB5lq',
      'x-fb-rev': '1040101991',
      'x-fb-debug': 'Wb2Zk7XkbVSuNhr8ayLsFj0bgv9o7tKZdpWcRistO6cCZMYQozoxr468X8osP44u2Quvkkr0G5eZhDHaMfdDGg==',
      date: 'Mon, 25 May 2026 16:00:07 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcS4vzJmt94Efiqx-eJC2BdBIcGmDwkR1tZ-Axm2gp_rfA-C4uL9H2oN_Yo7oqrANqGbE6F-ocaMO3F565Kr"; e_fb_twtaskhandle="AcT1GVm-rw_xxEz1K4iV2LPPa_DWb4oOwCXk8tkrauMy7jNvpPG8Fk2wGdBBXQQAZEibr8ukuZiV1u57Afsj1-yTJs9z532tUZ83OmdsHf5rxYA"; e_upip="AcTj0S3HcjjKCv2NIgAq6a_5kCtj_JXLCyQZd6b9Uq4c_zplsZ--nfqXEBiSmPB9qsRZw9D5j5ztA7ksAhsHijEGgWxoL023-WaR6VPE25o"; e_fb_zone="AcSC7OYbh6-jc11FETgwwREpjp7angN8MASXdL4RrT-e_qHrjaUfIKEFKDWuIJPG"; e_clientaddr="AcRwrPEajrN7GhvJc4WAIyD_FeufnCoaPYBDPbccx-NG-ZCm8JWqRJMemb9Yv_wc8noDHD7Ak_mHSiKhtCQ936fz7-lad1heuyuseziy5GCReKNfmw"; e_fb_vipaddr="AcRYc_3fEJAmJshg7hrRcOvQWMJ45eyE_WG1spoYHwWcAB1IfKGKLMEUmynU9udF2z2MMFI5NsfaRBxVtMEfwYigDE1nDiggmLE", http_request_error; e_proxy="AcS_wM6wXOORKdCG-tmPHgCTWprJt7y14MofTDQm5L95vL7Tw9drziqF8JaZwdD7MfOinq5_ooWV40I"; e_fb_twtaskhandle="AcQBp98_gqvryUt6feABxJ4GC8liJFxRRil9omgOS_YbdS3p682Bhk2XOP0z3uHzG_ywVMXw3RO7LluTbWvHlPxjkZR8yzQp2igW1A"; e_upip="AcS9b8sOJGSwOjZzReIPqi5vXhHb-X7AWZ6BVmPHgdjsIkHDiEBhWqyPzK___Z5jxrFDmEF6_Akwu0v0CTAsAqnvGeIp_rfQRNs"; e_fb_zone="AcQGKv_9JI_jnM9zS7PxbM7_a4alrfa1eluLefwXB-RqTg5u-wK5w1zzQ4nE5Q"; e_clientaddr="AcS2WaEOYwruEeJ1qC_AENI47E1rc__cfmU9e3NgFGpS2EZY9Zx9jS18gkCwFcRecsyb17JLGTrmshRQaag"; e_fb_vipaddr="AcSJwL2aRhXNgkDsn6DWdhC4x0aT0EOm8EoqwFf1T2CbcR8JhpuwE1yP8SIQ-eqCyg4O0hRd4w"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=6, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=770, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-25\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-28T16:00:01.833Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-28\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 64803572,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 129847,
        Symbol(triggerId): 129845,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 28-May-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AaH_56bS3lolZPrvQrzb6t3',
      'x-fb-trace-id': 'EUjeaPGRSpK',
      'x-fb-rev': '1040310160',
      'x-fb-debug': 'af5vwtiVLgwuQ9506KjPaYO4iyix5QtAeT6Jr7M/1GExPV/3pDU4fbdCT9fQ9hcWtKgyJxm3XZrdDz4wbC05Xg==',
      date: 'Thu, 28 May 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSku_xf3-AfHD6HYW1Wr317V45xlFPAyUujK6U6affuDhlgDTPcy_pipeYJ_aZz1zplAuXY4hpyzyXu7cx2"; e_fb_twtaskhandle="AcSeiSHkqSILhl8L904yBR03uNPX7X-vnUmdnuy0BAnxujWErVvWXn5NOZMcmDTvMXTsAH9vnKpTgMpls2JdMFjcBHwIHJ3TFrdHUI4CRlU9GqM"; e_upip="AcR4vhQxxq59yPvn2g99c2COzJu6QSpG7wYmVtTW4u6nqE5Mu6nf7vsCn6pfJwq0UpwRrKJEACnyzyLK8Ua794gSvCyBj4VkrCRQk1z_"; e_fb_zone="AcTJXn5gt2Dyh_3m4Txmojh04pPYFOrFgnkIIbphA524K2d8i50whigCm6VtMwLV"; e_clientaddr="AcQHwFKhRvFORjrX9QdpaaOiU645JKMXLzQRekAOUH2fsYnPVt7nWs83Df26QSEQaG65UHyAtfSdM5A8SUsxDjnN_vHwYKrLBV4zLeglpGSVusaUzQ"; e_fb_vipaddr="AcQBxGEJLxnqjMPtbRH-aqp_I_kefMrcdAIbaYO6ORptovAYJS_szg3MhVrS69g53H_nvpMQ3QqKbJ9X7mtkLQ-pqmZC57eSIYw", http_request_error; e_proxy="AcSTZ5wSFq1Tfw1A4FmhAi4DqeI0FlQF_SFCzhC7nQpv2qXVkV6wORKM7HXPhcDSvcW_kzsVF8msJ9g"; e_fb_twtaskhandle="AcQhzRKPLq1dMS_1VXljXwPozzWpfqYc2_1l67C0kanHH9bBRNZIr7CjUEKKqg5MtjamLf6iIAQNp8cGOtsHNXxGvFC4Rxi0dKl-zA"; e_upip="AcRsf1MMT30Ar8NlI-FesQOgm_ILN-qqvDGOxaoI8V7PkTD3DeBwqNsfAd567K6eg64upFUjEaDoyU1Cu4NLQuqlEaqmZ2hWZJ0"; e_fb_zone="AcSvEqGKTfT-BOlSo5m6xxzCDAaBhzAY4SH9DXxGhs89YNbJd9__Zw7RuO3hsw"; e_clientaddr="AcR0oilxLELlxACCF8gINAh78MDPtFeqEyhPRRNy2lzXinsiSkGIUt0yAeGi-IP-BOq_dZ1fsS3TAMi50m0"; e_fb_vipaddr="AcQIT4hDPZDXOB4KmJdjRSQsNQmcNXSVzKS9DIPLs4l8xDPA3eYUWnsVsDcum7lrGKYqD52PzA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=846, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-28\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-29T16:00:01.941Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-29\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 151206479,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 302883,
        Symbol(triggerId): 302881,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 29-May-26 09:00:02 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AD5YP1MWyGuGpjSXzSctIXE',
      'x-fb-trace-id': 'F83sA0S5uAU',
      'x-fb-rev': '1040404884',
      'x-fb-debug': '/XZQKSpsd/bkcAu+ynfo1RObFnXCzjIU8mATswi4tBbXZ/rHVLTy6EdQWM3TjGJ4AeXPcr2+kpEg0nsP5Cib9Q==',
      date: 'Fri, 29 May 2026 16:00:02 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRoiWstc_ao-GES45SsJT5TUs3ZpISyX3KVaqz9Yioc3mwOWrqkAq72MDi-rn8Ao_xcKcwk9gXyDFozNBhi"; e_fb_twtaskhandle="AcSgDfe6yv56SdTDRaOhyfoCestat5siE2txIiMkibQPFAnCMrhLFq3XH78YiZHNPrvg7PGO8JfN6R8458SbT8lQXMErpPkjt-c7tAHSujm0Ng"; e_upip="AcRhtu-mAcB4-hflxrEl1Bh1UcuvIfQGAxEG5kPyYoveJs54FEBfXHFV-b1aHyYoNnxZPRp5Au1M0uKQ_d3ZCHH7acYvl40FbM9e0Md0rWY"; e_fb_zone="AcSjHNBOlxynXY8pDPVsKtB6uZlqMxgbpz9WQAHdRcYZgqvKgEG5hRSYpMByEqFP"; e_clientaddr="AcT-JPdYNaWyGmPsgyQnlkb_JOC4Fx4MgO3iDalKAIQS7yqgUn8qu_bdBorJ1FyQF7XNx19W94H38dsCv8PkoGB0paYCErHZSxBt09b7xj0VlL_LPA"; e_fb_vipaddr="AcTeu_ZlygpgDumCMHAdR_yrQ8wsd58xNjgcz1pLchh-CmuPqKQfOugGxJ-OHCpLZL61GN1la51qhrG81dtf6jvewkoZXMl9p0o", http_request_error; e_proxy="AcQeDBDX4bAeTn4kAwZKHFRhCnZM4FtMeMXCMS1PSVL_ixDgtq_-XdmPwcAiAGgSOGacMLMNINu1XXo"; e_fb_twtaskhandle="AcSNyDaAIHpBdnkMDwIzSxnlwPhrmMKRAL6oQi834jYV6xWehT816C7qjnPG1dYCMoQvIo7h672CASCac5DOnBo8cHhKKoB7ctvt"; e_upip="AcR9yq_WR7FxQqarxh8iAMIuDLAoMroTpUkv_ICNjVZROgPaUXSyYjlS9J3OPOIQ_Zy6A4lsZ3P62keWhQzDcbDhRDB4zoSNZOQ"; e_fb_zone="AcTObrT94AlbPrl99Or6G1fPThWWyuHquXc-dprZsxkyxrKbwd-_n4my5XGKQg"; e_clientaddr="AcTDZZ8xLuK9_aEzfM7PVolTkhRagWJoj-fPF4wDI06EYTT2_QrrfAjELiOvjxnjMik20kMMANCCQ4Ga7Ao"; e_fb_vipaddr="AcTdrr8luOzjouNWIZ_PQSlErNuxljWlC66Wq_nw9lgHDMpUb3yHeqmc0oh4VvOrwa_VNn7oAg"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=805, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-29\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-30T16:00:01.864Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-30\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 237605940,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 475953,
        Symbol(triggerId): 475951,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 30-May-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AW79tfX5TEKMQ5Pa9CiIe2F',
      'x-fb-trace-id': 'HjCMuNiw0MI',
      'x-fb-rev': '1040478588',
      'x-fb-debug': 'OWYwvUbhA+OsbGBcPctrSetLubhdZnAC4b5HtJgobJ6e+QNm4R8S8jMlAjgll+5vdJS/gw8no0Bm9C0FeahRrA==',
      date: 'Sat, 30 May 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQYk6x4phEafcCLcSWU3PEL16p1iv9QEUedDHVGYiBk_I5qFP4Wmg61FMIZgdilxlGdbD2nVWgs_Xoxwzw"; e_fb_twtaskhandle="AcQOamFeKEaHYaz9ZAyIOiGnt7vxJOSqpsBih1jIfv4eKIDMJpWQS70hB8tYWu3k2R5anTNUnxPrskUutjMjhiA3w6cjBaxJZ2KddVlzqR62xtg"; e_upip="AcTRIXgyj0ifKAz-ATT7y-r8TpCrLhR73DavL_KePsIRveRz7wy332UIKTGX02xzlXz1ZBjlPynBGzoP6YbE2g-AEXWdCdNuZOZKo-55gAw"; e_fb_zone="AcS7EDiLQUCenLjoIc_rn7pQ8QbaKgJ7GvkH6tkA62WV87wKt0ctqiZOP_8plO3-"; e_clientaddr="AcR29Au0NCJZrMv-SR_Op7IqbfbqH5F4s5KIwTn5w_bAYt92oFzu4KoCuDD5yi57hJuiT3eOCmdT6d0XOn6BTEPzSffXLjc6l7l6LaWdCbPUN4wlyw"; e_fb_vipaddr="AcS4dT13lAY0NXHlUkymyX4a1eQ8Kfj0fYF2-r35DhW5RwTsyDl8c9oz9Rxz4WZeElOYgtmwu4o0It9LzJnSIMMyREjnOsvVa5w", http_request_error; e_proxy="AcTx-bvwrCcgLdCzgOsWwdAmxRB64Ft9j078YSZScCtYiZ1glmviMzj_XeYaJeABkO5dLeKPAMacMUk"; e_fb_twtaskhandle="AcQ1Ric8rRh3OEcPqD9V9sHido3MK56f5w67Su9V9Iih6jRdEFv6R2StcYbIXx7e8_il-qNq05gjfuifXrunYYtGf03teuf3aerL"; e_upip="AcRsIVKPtsO7348An6Icc6eneF6-tRpikWEPEEQSru1ojYV6T4pdG9oherUSYSXGjuDizoP0iY8_xdzHArJYlgqrAGgd_pWbOks"; e_fb_zone="AcRslpXDmU_H1qTvNZPh-G7f1Kk7LafcWYeZJT3GWK_FxsJG72w-TPlWAYxgVw"; e_clientaddr="AcTIZdKQt0DtDzcFyiyqqYaJ0UnhIC2-_Qj-UuKMIxO3UHlW7D4xy6MJMm65NYnoxjmdFI0URqb9MDFtcuU"; e_fb_vipaddr="AcQ5HNR_uDaMgzquOxB4G-jmwC0wCn0kXctSkZFmc2ARTuF37TRkJLAP-QEpiChGJrytsL166A"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=865, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-30\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-05-31T16:00:01.848Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-31\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 324007061,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 649169,
        Symbol(triggerId): 649167,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 31-May-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AoBhiVPsz12lfwJcm0VN6nR',
      'x-fb-trace-id': 'EZ9sPtGqGeI',
      'x-fb-rev': '1040516757',
      'x-fb-debug': 'nPK0fWZfMLWzgGuX9uj5Yy7i6KzX5NRR909NIMTqBIUdIXLtv5TIDfdNLspdfYnxa9X0y7uuEagE2wPkNw6jlQ==',
      date: 'Sun, 31 May 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTz4L4VYS2IzkFc8Gj2wkgcHcMDsWoDjyuTwltaOx8T7QGWG-Edz14mgCCRVU990gV4iZLPzwP-9eoGfVBM"; e_fb_twtaskhandle="AcR6F1kCq8w9pNN0FAKBxkF3Nc6wmyP8-cZkKrzYqRdIUJiA5M6raQarI62L0_8qDUxxZCxZD_lXQeJZGSg6ILpxC6dQC40pByWor5kYZPr45w"; e_upip="AcQEEwmXEUbfWTEJSs3Pmhu9FchontOY7O_rfHA7tY4ofWXTe2if2CqIbkAbpu0j8gbOt_sYxgCqv-qzoJLgmzI_oRvGTwSrx6bjo1G7uQ"; e_fb_zone="AcTy5zaxCxFhrzkRGYVwzZbf61k-D1qjNCSc8miNgyClcXTYo7SrSZrZMucrAIUB"; e_clientaddr="AcRIRHHpQf1v0zjVDP_by7QY1bUU2VLjskR52eb2Ef8GJYfx-cZh7knCmogo8oQc6R6akjF5QOdiHv0ENQKkbvd2BgPKzdPp8fRF8Bb_zTsqMn2Zyw"; e_fb_vipaddr="AcRbDR_rnlm_pc4JNdn9U0S_dLLFH38VzWuWlQTFyWu4d0OE31pzsBFX_wL1-ywXUy59fTvi6WQLT1R-1RpVfB_Mf_egDtBD_5E", http_request_error; e_proxy="AcQ7vRe8r9F0nzAm4PLPpf-8rZvX8j7dqQMvdlncXKQdQd-5nndsALtl6IokXKZO5hFVc-ybAcA9N-o"; e_fb_twtaskhandle="AcREwmo_ewZdAni0R3hPSIJ9crvw-_Y9CBlhFvCiKSPzsZ3qZIKwndQUlegffAXZi8Jd4oemfOEo3NQYNGkX7ub7bKk9R7NBtURn"; e_upip="AcQqrW53wugzWetZr4PmlJ0EKG0fPxhCbRsZA4qjGKX1sMWZ-bxqLwXpjnUg5zNLmdPHRpgpBcEU5EL9nNaHwJfeYXgyBYdGU40"; e_fb_zone="AcSHjd1jKqoniPLg3ClJPkorcEGqCQXmG5KED08rCQpeUVph91CUY1_LOtE05A"; e_clientaddr="AcQDB1ZRMvNGmiRfkerjmDStrF3y_Oh26LlDwv5T9f5ZlGQGJeKnCUg3qcbYS0-5Akch7SfZ2UyteykXZcc"; e_fb_vipaddr="AcSpwPPJ4Fy0WmTGbteuyJFi4pfI7rKf9syK8kMW-4X_UW57kFmbf_FATZJ9tdu48EPqfUOO_w"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=810, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-05-31\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-01T16:00:01.989Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-01\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 410408458,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 823233,
        Symbol(triggerId): 823231,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 01-Jun-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ADNYRdY0aRmQeJqx2BfY5H9',
      'x-fb-trace-id': 'HNtcyjy3cRJ',
      'x-fb-rev': '1040568398',
      'x-fb-debug': 'zQUfIpdJHB0q1tIX464u+LmD1tAByFHA9N3PpBc5aKXI8njMALfXd+xVQPfTN6gc9obmOdVJYiXyyPWenwzQcw==',
      date: 'Mon, 01 Jun 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQKw9NZejRdE25Y50hUKaoRiKqf59hyMEWdfAx6oAD-v3N0Z9iIeO0pVcwQhQ22WVZdXs9WAnEXhxMWjoW1"; e_fb_twtaskhandle="AcSDqZav9SV5R1j-2bL-jPQyc7QoWui69QtutaQ8-IWyPMTMB4b4ISCVB5HX0QZmVFKdHb1g8fGfiRdyFrysfJGizuL9U3yb9i7Cf79IBDgzCgY"; e_upip="AcQ_Z3xG03z3I4OInWr95krCY7yjYgT0GjIu-j2X40RgN5y4ak71-F6OmnM1CeKjjLsaj8fnJYVHpGqfXmuZPZyA65Er8l_Rs2l_TRDKkLw"; e_fb_zone="AcQNKcUy6xGLzQt04GIc-qjhYvZm-wEffH4AaXthbBKfaju7EWh-7WJIsveVtrYF"; e_clientaddr="AcQ-JjSFHRobaRyDNtheb_oVRe-0pjR3jr6GPEHaXL4RhA8HJos5qybFOyDTGvo13f8QfELWbawWvN5sT8fMr05Komb9lXX-WTyfi8yS1l3f8za9HA"; e_fb_vipaddr="AcRTPnCdSJGcZlO6SUR01g5mipqAFAPuSoxPaEqouU1DYkGu_jukqaVfii254vlGDIdH-8KdxzhxbZvXD48Y8soY7M2q8cJzYxQ", http_request_error; e_proxy="AcRiD0IvfGWZcF-FJ7bldmHEULCUPM6Rk1_kNw9PfuvNaNmFseuImLnC_swaGBDoTU-IQ6yNlbflefw"; e_fb_twtaskhandle="AcSlzQTaJig9s127fCKueG_nJV0bprmTqiMLAhyU3M2ynMUQYneoEfTGbSzRga7un0IFmtbhEXL5Cms11ep0XsnwsAtgNE3n0P0y"; e_upip="AcQYwko_J1LE0jkkaafjIq_J7BPMkzzjS-DpZ_zpk4jEIPMG5DjVIAY8Bqn8-SUWadanoensqQ-PD7tK_WlvfOyiUvWVHNKcVlw"; e_fb_zone="AcSG1JNx_9AuuGDHF0voV4OyCsmx2Acj6XNZjbzACDzjRiIMOpfR_qYMvPkKgQ"; e_clientaddr="AcR4aBe-aTXwmU447VOqWmYUfetrIgkjDm0Tfc8Rti2yQOpLl0J7Auw9PKGUHpcAqKNVgRfbMzxb0k-Dtr4"; e_fb_vipaddr="AcR7XhMbbYjvAAb_oWuhQaqkvCIUULxY687QnM-O67m7sUINaJq5xs0-Wk6piDheTvGD3L6_Ag"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=838, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-01\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-02T16:00:01.358Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-02\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 496809733,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 996871,
        Symbol(triggerId): 996869,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 02-Jun-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'Az_Jj-mcS6-Ht50nYWmuRPB',
      'x-fb-trace-id': 'CTa4//bikG0',
      'x-fb-rev': '1040665440',
      'x-fb-debug': 'TWOMNfoF7XAWChvA/uGXs66r8klOcpKu8F812a/2vVQFuet/Ij+Acf4YSNUP9LEmqjjtmxbSAcXjoPkCbB/PMw==',
      date: 'Tue, 02 Jun 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTnXoMarvJs3qoqjaz-N4Cisec3pSbfCQJx1n5LygFMIgoTUTFcL0DxLyVzmoOgbYZ1KCpYeL8lwpwVxGjJ"; e_fb_twtaskhandle="AcTNTU6-ZOHhiYepyChsz6e3hfDuFS74u9MmImkIBpO9xkzeWgbXbNIjJurg1JaPeTt6JevsvancFeiyC4FWQFqKDjpWybKTmaUbryUGdg6e7z8"; e_upip="AcQ5Nt-N40_9m3-URvTxjRtRK416Kq0sefMZk_D60gY8P9hwJmOpaEDAih6cpv5ZcHYh6XJUOxe9CcpGN5UMlp03MqTBwzUSWdy4Lm8pRw"; e_fb_zone="AcSJo9p8lM_Sa2O5psQtNWfk2bKOI846V8yt4tH-flVIuHUxQWdTf1XKEDk95b4K"; e_clientaddr="AcQ3usd1veunzKyi3NGZJClOfUOF9pnN2qB1W2Vja6ibpiF38Wx0d8EVeAtvmreFlFbUPmF-4YiKINTvS_q2Jz3WBovELrBWx1KiwxBJx3w07C4YqA"; e_fb_vipaddr="AcSfkNgUiAncln-1BBtJVoQIwWsrcllyuDBo1JicXdSROG4afa1Oc8y5QufcRnL7s8GaxsgT9r6DICKwH_fO10jSq3_QDY1hClY", http_request_error; e_proxy="AcR5ysoN7_bUiV4k51d_wJXXq-JYq6WnrrvXlrtL3mB5OTXHcGZuWE3dPdM-tbM-U5ybkPIAUclomu8"; e_fb_twtaskhandle="AcQ8mp01oZ481S0Q3uqEUPCPfB3CR4w0wbju2f_Fk5f8iAF-gQL6HE5H0lIorOZBGe__N6xyAaC1sig_r73F2u82KLoJobyzHBOU"; e_upip="AcT2AU5hTTSvQUFJF9M0pV8gJox9A_rU4ofkl8jfJSX0xB_C4u0yxoY2PDyZhdvPbWsuXbojS0MXcmVqhZo69wuBXnjObQyuiq4"; e_fb_zone="AcQLTFgWmqIiI_7izONwQi-qgSMaUE1unZkeKh9smFwvdNEwToUkPxZx21cOww"; e_clientaddr="AcTj_2VhDRyImbakwIuTOcxm2J33Mi216RU6WnkK0B2EjDmdj2HvrqTXaRWn37Vv2hNzFkW7e-wAhZxoqIA"; e_fb_vipaddr="AcQrCeuBONB9c0kmFGMQvBeSH3BCpYXZ2_nsA-UocDmYStR4lxhg3wVu6B_y8wXbuUd8zcg7qQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=807, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-02\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-03T16:00:01.406Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-03\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 583209781,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1169924,
        Symbol(triggerId): 1169922,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 03-Jun-26 08:59:59 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AA94i4vrnXMkCMpmBMHk9Ep',
      'x-fb-trace-id': 'G2NX8diOWpI',
      'x-fb-rev': '1040753655',
      'x-fb-debug': '6E24TZIdv+0wtqWwW+ta2W3XI8/XKNSlWiMCrgAmw6zIIwrVdwxr5ZcA8bXuGswt1nAFIhibxcNJ91EHnMK7mA==',
      date: 'Wed, 03 Jun 2026 15:59:59 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQKoRwo7AI6AFI15Wvi-J6IqV3as4_4A2Afz7X7jQ_MWXzBSKp8pBszkJlbhte3VKgQSGFAxTcgN9sNJ6Ov"; e_fb_twtaskhandle="AcQ4e9LCZPHd-HFQXCwBnewYZy1p8FJ38E51Wnlof9nx7ZSmgTC2LdJNatduNSbuRcKCbzUV1OzLY5ptfKRNmflBz122dyROoCxQjuHEb7TCsA"; e_upip="AcT9K32ErEuubnSs7Ko39Sbto_uPjceByHZgRn4_jR_8OQVLA1Y4Dzi0qsfKg4mlirD7Ye2RUHra6prFsLs5mmKr1e0yCQNVaJNZqQMCxpQ"; e_fb_zone="AcRtn-GXrcbZdFpw7nUmClggAOv851HZcKkLWWlmq98waOqHHfhlRMbvpB7n8ii1"; e_clientaddr="AcSEoMQaj6aY2CYtvGHl6Yg3EnfZBW0WhXKFi7h2qr1YE_h0_tqV9289YfOjsyyLBtfhtE_iO_86Drm2R6vBW3KHLPIuOD3LfoFKRgFWfVfBCpvbrQ"; e_fb_vipaddr="AcS9VJxEN1p9qWcfVGHBCphwHAljeaaLaRUnRhU-vy1WUKrYTAQReeO58hBPamVJTgIpToCTC2CLZwO8HqqFI0CsVibypNp3HK4", http_request_error; e_proxy="AcTgjGB04H3eyaKxMx-AvBbQlEckhDds9Uge6mFdGnYIT4nwlUecSvncvu5W7sQlpClbLU90n9d5wVM"; e_fb_twtaskhandle="AcQs1HrET4KjRxZ8oeRLnrV4PLrMJxmGFOFYx94auN1OR3y7yQ_6boH_E5YyghXo-t7yRkHw0Rtawz37TgOcW-1nfam4vDkGFrhF"; e_upip="AcRvVCS8D0RJZMTAaSwuiHwUTsFLKbXb5-V4DQ9E_TIGXFZV8GbsSAaIBpxzzK9D4TCt5VuLwEZc9R1aKX2CIl08xFamDX1tJk0"; e_fb_zone="AcSbk5MYZYKWZHIcMNctJct01nXtcxG9bJCQPBD-Gh6J2cVK7F0zYjiBEUpm_g"; e_clientaddr="AcQn3p63z7BEO0G-usPOJ_FKVcwHM2Dj3tLhLR8beDTEnIuBd5O9Kb18ZoibH_ESysF8x05ggv-Bph6Vxdo"; e_fb_vipaddr="AcSdhEkZWu09OOPZ26Z4r0jYB4jRiswW1IV5Obm9bIY1v-vWshMt-v7UvIFN5ry1W3o3hLC7zQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=798, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-03\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-04T16:00:01.222Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-04\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 669609598,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1343017,
        Symbol(triggerId): 1343015,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 04-Jun-26 08:59:58 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AGlDlWQVZdMNrElElQHZq6e',
      'x-fb-trace-id': 'H8LZW/uHyRQ',
      'x-fb-rev': '1040832931',
      'x-fb-debug': '4jYVi8FQ2wtbx5N8o+JUQuC5adclVRQevHwbSg+DGQdltvMIdx97TfSsGSTRaW687feqt2ehG7R5SF0lSgB1Nw==',
      date: 'Thu, 04 Jun 2026 15:59:58 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSgWeQxyfgk7yJsATxkh8zgD1-eVnIgwx-v8zaoGJ3jamBk2GvKgoSXG_rFNndVJVfCP3plFOmGf7WprBXWGg"; e_fb_twtaskhandle="AcQBKb0HWFEHJ1uCL1aaKT4S9m4hd1xrEAoMz2H3myQj_uBOhOf013mFz3iZFfaIj0m_LjJGH7V_aOgws6oYDrERLAC-__HdHAN53j2YYL4SsKg"; e_upip="AcSjbAgzSnqkxDTBxoDgKnDdvS-nwu_4DMQ8NULYpbt3DgMpg06XIbQqgLjR7CWK-ceBjfisze-thE_KcK4CiKePWuxmmkRyVFAmo0Sm4ZE"; e_fb_zone="AcRNj4P1l5jSMwgOf0xuOPDeDTalMBz5KwHwyqXvI_zVZAszHuUUC-mv5xvF_Dup"; e_clientaddr="AcQNbYuM-4uzWZFiovVf7rxCh8c-lYQ60hqxciXd19SalKRh8eEI__e-Enj6OFtUvzYjaR7fy6aGEfbeZrvdoNsc6-oQM_ve12or9obhv-RfZSHJXQ"; e_fb_vipaddr="AcSLwXCbhYD3wTbY2p9Z6gAjsiAm8F5DiqScfgEd1R265Y0XwKWO-p-akr692DdpFvVR-DBk7xgY4g-YsMGzHXxitLtVLeOIGs8", http_request_error; e_proxy="AcS75s0kfb7PpbP_LBjXXbneV-6KT9hTSATvKIBPgHmd6NHwkg0czlWn3PpkxEoHi67QQndMsfYBjEQ"; e_fb_twtaskhandle="AcTTlbF2lRuRQXvwV5VV9OJ1iebEfM7g7O8Dm5_4OY9dMCT_7uIx_K6r_gvHG8FLNV2wGmixeYLMeR38n-sZcncnJYZ1OvBj8nw"; e_upip="AcQLg7-uqKsAVUhU4kLPtOjohBU41vpasQqh5LYZAttMOqgLXEUHjyXlbxJL4jRyihl55CQf8nMr7s4MG9eYzJheqEzQIjTveZg"; e_fb_zone="AcRNV3I_dGB14JJaov9JIdeGDRt1vkoRUXBSgpwJOhuJxCvUvwRz5MZY5uIQhw"; e_clientaddr="AcTRmQjIsbcnTaN-bdRMZ6gUP38p-IlI3F7oWeupi547MwnZ_HDlxeEKbzVp_5oWlWAByImFcA9_Oj-9xMw"; e_fb_vipaddr="AcReoghnjk7VBPAxCbNNVQC1e84Ogx61opPPKcH6Oj95WB7Y-S7jMgYHAf87Go9Cy0IfJ1Z1-A"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=777, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-04\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-05T16:00:01.263Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-05\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 756009639,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1516017,
        Symbol(triggerId): 1516015,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 05-Jun-26 08:59:57 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A0gR1oaHWZhdr2NKTCP0BN5',
      'x-fb-trace-id': 'H6o1uc8L76z',
      'x-fb-rev': '1040916109',
      'x-fb-debug': 'pzMvqxvBJ6IvXX5bqMtqLSFt5zRUgmiVXnOQT5mjKI75Je75dQbuTT0Txt6rip2ddDZH+Po4K1vW+gDpeN3lKg==',
      date: 'Fri, 05 Jun 2026 15:59:57 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSPAEY0wputM6CE_5qmH53CkmpvkIWdHW-vt-DbmpKXmAF9zH8TQNCV9mYvqCufSAJt1At3Yn8_IOpy8Li_"; e_fb_twtaskhandle="AcRnY_l1BO0Gn0Oq6JrsEcDVcDFsxNHKWhj4pgC6PHfhMh83JSpuM6LtGkb6D2qyVrxXajKNSW9KNGUTPjfYTNJ0RLfjVX0WRl0UrsyfbdcKImw"; e_upip="AcSPlV-ZsfFh7seFo68Gqr9Xv1AhWihIHAgVMu7EKUibZg1LXydT06uRZXMLEEvCwT7oW2zED3au9LEsCFqh_9sk0lkPKWMMQF7Zda3wx40"; e_fb_zone="AcRoQktfzr8lW4ySLlDfIepZGHMZ1DL2qwhkLGisj7YEGy0ch7vYVbeSCvTBOHYf"; e_clientaddr="AcRlhJ2HPhUv20X-ZfReaYpNjF8Mc9RCRWB2O7XOHamEEaBk2woSb3ft5rqWF3MNLY8RSTakeD34SHV4w8Q3Z9qdjUdO7C_4N84EyJMcSiTCaoNS"; e_fb_vipaddr="AcQRWN68NvPnx17QqFxH4jo8ag5kXv_iVdjw4a-SRkJrfKH-ZgNTxbgBkVgfvXNqWTv-saRwKVzK-rPLfJejYup_-Qclq6r8-bc", http_request_error; e_proxy="AcRXbUQ8hYeZIhOMVcOCl_5oKvZAskRDtAeOuMYxwncyhVIDJ_T9d4gMzZXNbXqhEH9Pp9TsAxBETjM"; e_fb_twtaskhandle="AcQutNBNS9LmX_EwLl45qoDE-z9lS_3W5bZ1zTh0mnt_9Ii7gYM6gAMgEfAXG-vx0JdqijxSGRnnBEP-_9rJAFyKn4uhbSutmx8"; e_upip="AcTPWIhZxxWUtE3HtyNTyGqf5k35srsZByXiWg3rFVuUUPJanRDxUWzlrnp58ERRR1r6ptVuwIajGmCNQVJnNQ-MSm9ZQUm-hQ4"; e_fb_zone="AcSWqranQbXsLY9dSZumUZxzNZMVJWlaJwIL48-hZGBo1O2bFmxEnEA_WZoUMg"; e_clientaddr="AcQHp3NGWOu0CLW01ON-c8CQtNNWbRbBk1ujDf0LA7opyM2bpQYsTUmA2hbcrKIh0AjEEaJ4gR40Pd2o31U"; e_fb_vipaddr="AcSKhql58DOVWHFMNcR1vTKRXB3yLzttj4WrloQO95zao4VAwocGTlgiDrQil2-DBQY1-3K9QA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=840, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-05\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-06T16:00:01.588Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-06\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 842409963,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1689076,
        Symbol(triggerId): 1689074,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 06-Jun-26 08:59:56 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AQTT6noftXFsmBO0ojRInbG',
      'x-fb-trace-id': 'CCAvk01NUjx',
      'x-fb-rev': '1040979543',
      'x-fb-debug': '3cMyCV8qz6rmvT6PYW+8Q8+foq/DQqHBcjToLsKYSAmmoySoKPvYKGP6K/a0NSQ+zOZDqY+9f9jcF0yeKER86g==',
      date: 'Sat, 06 Jun 2026 15:59:56 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTvkEMxxovPzEHMxVPFK2z1fRiE66g__AVmduee1gt14c8JcAdAroLF09bvdpCjB33z7StAQCBQ5wzgGpcs"; e_fb_twtaskhandle="AcS8aFv0fAo7A10hc3N1u5m3uePSKfjwjcmQmtbfLhvL95jjyg1Va4WHLB55od-acb0zBVUOJMNk29kX5iewp0LGc82kpHAy92j8MjTc1c7rhpc"; e_upip="AcQIqn9zLAD0B83m0bzvRLHvwzMVoDlI69HOaYYVNVafQEOD0_sLD6Y600IG_2MScujSwxLipYJ2xVpXMDL-GxoS2AyNkGpN50ZLC4qgxg"; e_fb_zone="AcRCIvo9keT4s7lnWLpgf5cWmFdAf_tqnEoQO-pUQMYj25UzwmuzKJt9b9zn4EQ1"; e_clientaddr="AcRmLIp2kH50GRdFM48ifAiu_SvCx_2tjoTdhMR-0nOQGtZSZ_KVR2KYHSkusQnWEQtpgSu4iwpfoE3bsH_fyNEY92DF7oBRF4vuCSECI1JLpcr5mQ"; e_fb_vipaddr="AcR32NWlQnKesl3t73D4t944tpzhTaaWMq3cDV9ucXUj-uLQi9FmOyBWSEYJMT8gMppTBf6xApuGsIefqZtE0xIVZcw_NC6xaAI", http_request_error; e_proxy="AcQ0aqsF6DEes3VjSWzl7zXdSmyeQMKmzYB3Cgk0D9SmSQENS3jG0pS0Y2h_7GRD6vZTqIqR1ragwxo"; e_fb_twtaskhandle="AcRCDtxclYxk0H-otfWLXZlV0BjNEv2mVdV5x_9bhKcOW55kbam1goOK-W3ItxxBC_ow1_YwLkkW2TrP00BHz_H8XW3q_yazD9Qq"; e_upip="AcSBDhrPHNrRtqlWnfg2QqSBx7sH3zO6269vwAqaz-1e3R2T9vbmKZWEyjo5jIjWR_IQ7nbeSKwgry3vld_PP-dwE-hyBIAGtqY"; e_fb_zone="AcT1O7YrGRiHd57USpJ93J0hLUbHtqP35MAFWeAPHYgNsnJL1jBpLAnZDw9RFA"; e_clientaddr="AcTeuLcEBF_RLsYTfWps9TKiPNAccV1EdA4iAhrULoU3E_uWYiOAnScJCMxSI8O48XqxoHbNcqC79pDtBuo"; e_fb_vipaddr="AcSwnZolR11V05MYQuHtm937jp8oBM7hA4eVS0S8Kp70_r0x8N2vQzmq6aIBANSDYyh8uJa00A"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=819, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-06\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-07T16:00:01.436Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-07\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 928809811,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1862236,
        Symbol(triggerId): 1862234,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 07-Jun-26 08:59:54 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'Akjnt9_E3OIglq3ytLlkXaB',
      'x-fb-trace-id': 'AhM3+CAIRz0',
      'x-fb-rev': '1040997896',
      'x-fb-debug': 'G1rpOGJcQlRItHGg2wjrRm5Rs8kLQ9Gs7kHUaFGeovh+OwGBhIhtz/K8QSlGfVKKhwF0rvm5f3u5VQ/uTfDTTQ==',
      date: 'Sun, 07 Jun 2026 15:59:54 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRjzq-lcOGL02j705CSHOObAXE_TdIgcRpgERr9MSXC7Jn7JecZwsSb96v7SViIqXPzebC3FGiFDwc2SmEh"; e_fb_twtaskhandle="AcQVC1qozCWGa-i-9LHjuMQcj9lp5HROf2Hq7JBJJaAuJ2_9L29tlOvJK70G6TqoqB4IliTS-aFKiApBKGyB0qHz_wNtL0_WA3CkmLdxjCPdaMw"; e_upip="AcShrXX_Hgv1FGP2OC7pENgm9j0szrEmwPpEy8EcPVUyLUV1-KNeuMmq306BlWzyeE48GURbwUK4_xjaJiGJiuCfaPa7d6_S3PIkjxpc14g"; e_fb_zone="AcQtGIm-cuY52WhOebdYm9eoaIjC5ru1bLf25OAySAvbW5haSpWfXql7sVgSUmw3"; e_clientaddr="AcRIBN0s7BQkBJJbwvBeB23Mrwaw-aNV4CbZZWWgORjUEwTN5UR3Vih8aiIoWvHcIvJICXtxmqXnCIJhCynxAk1ciyy_hLdbMigJEsEYNXeqxyB7Og"; e_fb_vipaddr="AcSazF0Ur9J83HAmZcxx3T-KZ9sEDxpdhsWZe1ayBaTqgORB64eeL-6jND-zygsd3Qfon6fqyCuE9MaHP9d6_L51yegYjTLlLXU", http_request_error; e_proxy="AcRWSwYxQg1U95K8sKTRXcnBPFTBbeXN1zxYeby6NFGDyTMEFPUM5_MVWUMAsqNMQFtxI48iQ0ItQo8"; e_fb_twtaskhandle="AcSMZnlYcgaSiv-BZXm3cOl3wSx67CgzqeInciQHNCUvgMbdULYJmj5AVL4gNfMZ4-TE8D2Rg_tsiOlkicPwW2Uv_se9FZqyng4"; e_upip="AcQeWkIl7TgsGd-LtzI6Fgpcy7vKJzUHd_YeM7i6uDMOOdKzbDXATCyZU2OGqgdpl-upz9QUig89vS3PUOOizeyB0EkjWUdyq4E"; e_fb_zone="AcS-wY_Ba3k10dnG09odifYHBFajF6hTCf1meobmY06SqwgK0_5f_84psY1adQ"; e_clientaddr="AcT0oPk4VC1sus428L6Fc4KWdqcZkC0C9GZmh3S8dhIG1W9UASIdOl78DV1T5W7frskqX4kLN-SA7CXEhsQ"; e_fb_vipaddr="AcQhxTL0UlpgkQTBCUAlflmuGSm1W6Po7eIzSgpM9V3xwZBYa7b6Q7Vm9n_ftu70St-sL4NNcA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=807, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-07\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-07T16:00:01.544Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-07\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 79072563,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 159724,
        Symbol(triggerId): 159722,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 07-Jun-26 08:59:55 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A_TiK_jX8Bq6t7FgrNqRGKy',
      'x-fb-trace-id': 'Ap9Tn9OdgUA',
      'x-fb-rev': '1040997896',
      'x-fb-debug': 'Uwy8C+bOFyAFUskbaObRx3df+Ul3VydywD7oZSD/12OE5qa4s9srTb6kc3jZnnraA383JunIWnJxLswhbq8Cbg==',
      date: 'Sun, 07 Jun 2026 15:59:55 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQ-INKnLkatESbKMEnqDkZXQnK6cAKakBD5y3uzJ3L6p98zRqQJmVXmN4Ad3quie5l58XGQ7TgIH1lFTwrt"; e_fb_twtaskhandle="AcTXG_dBVx1NY37fqgnCAdjnoZw5RiXvp2sbwR7iOUz6gAXi3D65NTIwWvjxf2KC50Lq9TR1iW8pZ5jHey7TyZHr6vF85SVDQ6tfBKcpB7H0rg"; e_upip="AcQnzH3uRiZern6gR4bsosRnBhUN5ZWYLSEb9McgNHxxefQ6lzaNqkvUfaZHelOnU8BdvgIFKEzDEj-RoYJQbvdu9jmbZeQWFCq9_WQmgHY"; e_fb_zone="AcSMZYa15aqmBregl-zUi5ZCB7hFJcxTZDABUDw1D7tjXc5KbWp_NFUn8G-eWPqg"; e_clientaddr="AcQA6h7G93jF20UZqXuFXtIaq5EkQAM3cztnNmywx2aP1AheQJAWdOgXMVaNLFx_Tt_gtCiJm-Q1pfC8zWw14ZAScqO3QcNj_3H-6EjHv1zzpUwy"; e_fb_vipaddr="AcQl-PDx4I8G_hRdKM6-KNs6ze7tQsZxALEIUQHlGwH9GEAevvwckuoAtoXJY7N-S30LgsSjUPsjlfc9R9xCXqm05AjJi8VT7xo", http_request_error; e_proxy="AcQh3db2iblx5q7XPGFo__nDVvOvwd7jhKH5MR-Ce7n5hDYhp_AJnWuoIoW98caX4PCXBNRqVXQZq7s"; e_fb_twtaskhandle="AcQee9F6sXJZEXV9BqK4pml96O18Y_fNj9B_zkhlv2_h3GjqPTk5J_b1C7VQpiu61-AE270dRqPBKDQ3vg0m0NCk82G9aEqP_pRU"; e_upip="AcQHMW9I7UcN_dcv76za-s39KsM1OhdpGFahTMijnmG-u6pvlp4ou74UEAQfNoafbYCkhPBZGexMb63nfImrI6eJksja04NVsvE"; e_fb_zone="AcT3LgCzZdgKb_FfU5pNoEyJfmp2XzvZPfjDdgrisjULSGx17hjScs8EFSQkFg"; e_clientaddr="AcRfOrU2cZUn_1w0s1RPx9CsiDDf4TNZHlG7BttAjaIyP-_dsr2CjeJNdPyNja_Da_-Bb-bYxUKdKOzqVSE"; e_fb_vipaddr="AcReZ_a1gywlNKGaYYlEez-u4QHqFyRHKaHuB8Ht_k0EqnqZr2-uv9zjK3pT77gshKewUGd8OQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=757, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-07\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-08T16:00:01.403Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-08\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 165472423,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 332804,
        Symbol(triggerId): 332802,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 08-Jun-26 08:59:53 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AAuyLqQQdcl6-Rj9FZDTzJp',
      'x-fb-trace-id': 'GqjYtTMEbEw',
      'x-fb-rev': '1041019980',
      'x-fb-debug': '1sGadaUeMxazsw68bATQwHRdk4ZKn6qgWLlp0nMGGmchu8n0oi+G5u9k91jUdceZ1AcyaLDuESVW18qDfA+YoA==',
      date: 'Mon, 08 Jun 2026 15:59:53 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSd0OEo6tsBOoeBSKG-aXUwZT2uzJixyLumvMyoakZo3nG8AtLbpSig97cw3ZedD2dudQxUq38vy0iC4gCi"; e_fb_twtaskhandle="AcTAXrEGv3y9W2SZQK2DpiutPdQ3T_it0I2-Bv0fjnNHA_UzaAzuIyXWy0JQQBV3ektIOSAu30Goci-vnZ8hE24FSJjNj_WOs7_b_5hab4Urssk"; e_upip="AcQi8MFQMjV_4CxQ0_vtuaCZK2RllBvaQlZgmRgSPqqibvnbvHiaMLEoxd-gLWjslFXlFq35u08il7w8zSqBo63UEZcf4cGqce8skYcjCek"; e_fb_zone="AcR7CUvhWAan53sGFu9Znzxs2e5xuRrpE6VaVXlSa3jVmQFex4PguLDHP_HNTj_z"; e_clientaddr="AcTBtLQHIAhGz6bQ7IlrOtysr4ULPnYVnmlc3toFgMBbPLJgVjARJv1845xzFEganpZClpX-AQuHqXoGNloyNw_oDN6_FN-Y9J0GaWCfN61ve_AVLw"; e_fb_vipaddr="AcSL8O1GrkXegniyEb-1BGGk_jjpRa_0k73eplaT5kZS4GTsBjaDJnJxVrjZeQ2iQKunkqnf8IJQ316kb4x37jVOENhmebO3Ml4", http_request_error; e_proxy="AcSY6O1KpuAACe4savYtwFPEOUSi19_1BCU8bk9rCI2ihMy_3Wrv30u2SbaiNit3R4LPxe6CcxwQjCM"; e_fb_twtaskhandle="AcRx7tRx3Vih_uXqio1bNyqSg-La054FfsuJpgUon9FYN0nO9fYb-VoCtBITguYILqh1Y5jGLeIYdWfnpmT0tKyZZSW6woEqNmGO"; e_upip="AcQjeB4xi3md3ntd8D4-oooZymIC1P2UeqtPTnb_echX0QgDU6S7psgwbO0YZ9vxVCXuVBUaOe_UkR9Xj0NECWOj1S3w5wDJM-8"; e_fb_zone="AcSmKgScorQHWaeoa5KChGxFUNDxVL81-bwKVq28FP-H18tk_soOU9c18Dkw3A"; e_clientaddr="AcRHDwfmoYROkYmKi0yIS8_2E8LGpUH9U04aGdn_XJ-GFGNvhOCzwoVeKMn3Hr06IrUN5gcrw9LPxxPv2Wk"; e_fb_vipaddr="AcQ6Z5aIpmPN16NWl86JZCoXeAK0l4co5npd9_U7W6AOmmbxEq122uTZZAwFWkkICbrHuTaEaw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=279, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-08\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-08T16:00:01.804Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-08\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1015210179,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2035388,
        Symbol(triggerId): 2035386,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 08-Jun-26 08:59:54 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AuM5zxow4O0-b-Tq1oD3s-Z',
      'x-fb-trace-id': 'D+7p+myODZM',
      'x-fb-rev': '1041019980',
      'x-fb-debug': '8Z1Y07ldv0l5F3NFYQryYtTkNpTX0yAOkUIT0jk5xIx8nj//+kTS1VVDOyr3ZXWavAMlTTuTtKPIvfM/KIkWGQ==',
      date: 'Mon, 08 Jun 2026 15:59:54 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQF2ZcqTNGeaWXaepJ_QMo9AqdvsyH5S7MSGubQ285SXD3iV4iBZ6KQeFoK6NqOk2aPZXaPPFB6Qi2yA3Rj"; e_fb_twtaskhandle="AcSKXt_Wb_0dxE0TqEeH4nsqd28278EsIOEzfClPvT2NJyPdeVviYPTXPSICd-a3XKlntR0VGI9t3SeIpXcobfNq-VZ8CowU1V5eFXHjh5TAD7Q"; e_upip="AcR4HheLHKqxJhaK6jDnq_JRMFDcqcpGcPJOqz3vm_glOfhVHQeh-0a0PJ5L7tud0kJQ--tetA-Z1gPzJ552rEXi689WieuXyc8JHwnaYjI"; e_fb_zone="AcQ_tW1zKUUxRyUde63cRJWwNN8he2FJOIXOjkb6FZ564i_G6qSxq1uaE_TMXTWh"; e_clientaddr="AcTOf2B2vI2WbbtDumij6rHtyByZDFCoRI67ryiKUfwHENRVESpsnlpbx9KdgsSK9hejfNODvg7Ul2HC6qIQMHcP5QOSK5gEIQ3WnF5JXjI1N2pu"; e_fb_vipaddr="AcTEG17DCYAdMASiUvgLJ7xec3Cx0VGRxmGZjSuWXZUXm5gTHS3WiXhXfe6Bnpkb8hHwo4ODTEFoaXNzvbTPisdadm29GJCdBn8", http_request_error; e_proxy="AcTz8HmDz1o6O9Ui7tSUeS5SGJcwYb1iXkzHO1IJkq6U5VO07f1MXiTIQjDVKLol4qVNMpmQ1HOOD4w"; e_fb_twtaskhandle="AcQ1Ypcxy5z1YyQI-uqKSQfUYPLzwIf33VqpqsWy5tG937H19feBWq_vfd-sp7JlsBr5TueEAzzb4D683R9S1YbtbadMjWrCP9k"; e_upip="AcQiOvantfgdZy3Ocqm1dFQV2EZ33N7sjTu5_uarliVWTbyTOvtJC4pVSLayvK63El9HIskFiqcAKKL9xuxTK-YjnaeFOKsCyQI"; e_fb_zone="AcQjkNlr9iE-DjRGd25BRnvgeVYZ5nFYCvSZhC1rjejScfGBPu0joFsMf4umoQ"; e_clientaddr="AcRJQYfP_kIW7XFJJVy2SdO_kzieEXFUOIVnpBwlLgR-Xop0HGBYB7xqKQZALPx-y9xzIT8ARNo2iQYxesc"; e_fb_vipaddr="AcRCg2VrcmMg2BW0RzNtB2Vw0XGZE-Htevhy5lVk7l6dJNZpjGcj40LGJwGaWlVae3zpkmuobA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=14, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=740, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-08\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-09T16:00:01.272Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-09\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1101609647,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2215912,
        Symbol(triggerId): 2215910,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 09-Jun-26 08:59:52 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AkqcBcWYFtT4VBV8bBQ67CB',
      'x-fb-trace-id': 'A5ijzvj0hNu',
      'x-fb-rev': '1041108452',
      'x-fb-debug': 'sAnHrvCQd+Xr39DEaur2mHq/QPQOE75DlJVAQNg7Y/bBMKv6VWvHy2daseIOYr6r+7l/Fzl2xNsr+nPk3WrFWA==',
      date: 'Tue, 09 Jun 2026 15:59:52 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQs99kB8MhB6vBGJXo_pU6s5fZhLc9l1c1fs81I2zWwX9buzQ38PQ5UW-gBgt6gnX61VUK5eNVsZbeq-nzT"; e_fb_twtaskhandle="AcTpyO7IeqJK3s5pPnf2BySTOIz5CM-6OuhK59YzDBHDCqj9_qLWhila6TlwjKvqYkwiPnVimxdIbsXmEMLwf2Fq22WE3i1WrThz5S_uuPDKAmo"; e_upip="AcTJ32cHiXgzBnjGWKR5bRqgfi358jXxQ_hxRLfUZCOBDUUxknG07UNs8ZFSwBhXyKRtnAQtiB23S6omisZSK7KmM5IZ-IjC9uQtKn5uFWU"; e_fb_zone="AcQL3GwupbeDF3eRoLnVPlgyU5R3ntqPjyyW4ohWBaqkk-4RqBvfawUqVBw3ly9y"; e_clientaddr="AcTAVdLjPjgVK4d63D09KyHi8-HRCznJjeoaArp3vGLTWj0MCq7DtSDRVmnPvicsjOdAMIQ4qGNa6UMvZcknoBjeFQkrEELlkjl-ffu5IWYdgNSn"; e_fb_vipaddr="AcTC60UR4XcjLwiC-O4o-GtAfn79Om5V0q_DaTxpkKpmzDydccxbOrajEbWdft4MyG__vSWMeHF7ClTmSKzlFBHq2LtdwyLHR4A", http_request_error; e_proxy="AcSEfSs84W7arZqgptnsyYRFjImHG9xmpOc9NhR7fyZYzN60P-vYWGR18qbfKQC_uTbTVHR4hwm8lEw"; e_fb_twtaskhandle="AcRYWJsFeGUQdWp8jxkpb6h-fPhWTP3tNMYamtwsmQ6gJKXpQf6RVPd8KiXtKbV39M8OrrXKDRl66ItcTRxiPIjz7NB4aaBftSm0"; e_upip="AcQYgumDNffy0HloqzXJW0iS1CQwDsBXBA9W9rpQaJEAG1_7zIrQgwHQP3lz-M0XOLSo1KdD4oC6PAT8GUW-T2VHJvPHIaX_KtA"; e_fb_zone="AcQwn-c3IilQCPy6fI0ns9Rk5vZsY9jPbCX0d7pSCS0O8MfRzZboKZishFkgkA"; e_clientaddr="AcRJ2cVoJZL4cBDGwKWl_jqIooB1kfQFqRS9XAHX2cefP10DgV99qD16OiE2OIK8rSpWc3sDlpFwW2YXF3k"; e_fb_vipaddr="AcS59xCVbsuXvNF9QPm-YpK1vyrvGVNpCtAzG9XzOTc92DFRYvYU_8nPKL6i06wRe23zGhRtwg"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=753, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-09\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-09T16:00:01.285Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-09\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 251872305,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 505814,
        Symbol(triggerId): 505812,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 09-Jun-26 08:59:52 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A5pKY7X_rIYFbDZq1XHxcM3',
      'x-fb-trace-id': 'BD4wFk6ulfd',
      'x-fb-rev': '1041108452',
      'x-fb-debug': 'XibBsxhAS0/pCgO5C7P4ib4IQ8+Inp3L0FRrO6YxD/4lsP2+vWJZ3eLObcyrzXqusbZSh/x1q35uvfuxwgcmiA==',
      date: 'Tue, 09 Jun 2026 15:59:52 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcScFoUbNvJyw9mQSzB-wTblclfjBzx2eBP8K_TVFwm1pVubhggNLuol-WenS1e99beHqp4XRzkn4CCJpEzaMQ"; e_fb_twtaskhandle="AcSbB929jjrVgFMPMq6aO8fnRjbI43vXKRZYlD7ayBpTdzZ5nT3mUMtnCBBYRMHmGOFWLT8G7ae4xWkEQB-_NRSySbNbjn18sqav39ZjQOXgfaA"; e_upip="AcS4zsQTM_9tG9Pm6aWU7VYaPWnTC9UxSc9nEq7GfDrE6tT0RnMIj7PKorFRJSXSf69MRRj2H3W0pG5xwkvIs0u6jRLAhEygRInmMplm"; e_fb_zone="AcStNNXFr_9uiDUdmbqjp46DN6vE2ESHjdkynC8tu9L2vl6coOsJgF4EXNqhQ2h_"; e_clientaddr="AcSc59H0v4o-vIMbyDKTgeQSbD9dfmJ097su78LdVb4UA1uOj64UUCULnJUXoyNeHUgYBxbyKSwYs3di5u1hn_EHgOFJDh-eNiZ-tPdvoegOIhypzg"; e_fb_vipaddr="AcQQ87bp21P3JM3qPVvKKLaIAx7c_45OxPuUNcPirggFxf6GMXEUcTkVfddQTRHg9raKChCaIMX3h88YsodYHASr3qqu3zbY9Is", http_request_error; e_proxy="AcTVRoGyuFGA9krOI8AFRMPDzZ4RMrqRKwBhlU-MpIEYXq9TcNAGo9x0MP5ICJIFb4Y6NCURJZkkInc"; e_fb_twtaskhandle="AcQ8Ok14ShBFy9oxayXJJAsOS8Ud_5fhz1Xo6LBGsXOdGwa0XNJ3MMmRjMQvRi0R22Ov5PouXbV1ny1aLoJg2_br8kZ96hQEUSII"; e_upip="AcTqfIX_52KWm2rXPh1mzfmVPBZLBaDJgQr9CGnKOM8p_vTgeEUMBDQHXPw7OA_B7Dhvks4mUyDSryRAWRvYscEQxYnC_nGFj6k"; e_fb_zone="AcTzuEAis_X-T6HCi87AtzVqejfeTTsPcv4NpwCMvBPlMclZjLuS8Hwgn4Uu-g"; e_clientaddr="AcRrFk0JF7oDahUK2lPJCSp3Jl24el7YbKePZ0CznMrU49ChRn42DKn5b9THQOvfyzTsUFT2HUrdS3uJKUM"; e_fb_vipaddr="AcQH0pWA1nZwnVZmoqmGKtTPc0vlspE5PiUwsKrYNzrfHPkdTMB9TADwFJspI3wstMgplDpnBQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=738, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-09\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-10T16:00:00.951Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-10\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1188009326,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2396232,
        Symbol(triggerId): 2396230,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 10-Jun-26 08:59:50 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'At6dOITv-U6To6YvIAvdyYW',
      'x-fb-trace-id': 'F+oSNE5R7No',
      'x-fb-rev': '1041198376',
      'x-fb-debug': '2lYWjwU9lbGwHSrafx71aTOPSEX/eSvdORgUpwmZinmT/j8qJDSGzD7g7ZXOBLVIj//jUI2WpNCoT/BrM1u0YA==',
      date: 'Wed, 10 Jun 2026 15:59:50 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRwfV2V1AJAnzwvNrRtUxV39KOrEkMdlDvtCSuU9NlZaJcTkfMFHYSLwIoW84Y86YY3_Ie4femqK5B_z-I"; e_fb_twtaskhandle="AcSEk7NazQBmlC4bjF94hkq4e3t5cpTWdWBr4qFf9Qe5qQcgtf4eEwf_PetGo2vfapD9WEXnDLQUysyToerKV58WeeaW1A8s82NoyyA2FEdXijg"; e_upip="AcT5tIrGiV4njEvHgu-GD51lWjjEQa1P2EZXD4BVg-88sqtAsBG6SdDhOyH2U-cmj1EYjWPogPfL3eF30whSyVU9LWES_RINdskfttgtc00"; e_fb_zone="AcR2u2YxqBFpUCKXAMeSD5vIR8n8aXlloAM7CT-w6vZitCYUYmc2xYvRAydBXE4W"; e_clientaddr="AcRqZblbEIxaXfPmVsv6ctbw-wue1JdWCAFHFTQoyC4TFQGQr1bx3GtVgyq90MxFT_KXA1BBLfwi-IFAcVL9lBDSbTCtjueNmdVuIlRk19DsdLmjEA"; e_fb_vipaddr="AcQeo4Woc17GymSWlpsp1Iy0OLr5ZhTh8SimGVcDCr1Q2eUX9hR-3sygoQcRmEQgR5T4mJN4Nx9rZ0mDefhhj0I0o7CDcakEcbE", http_request_error; e_proxy="AcTqfgjeoq0yZZOrXP34X_EpcHk_w8RiwZygPmb9uki_1eJo_hS0hgLyAodaWvwy1tJ9_QzrtEvcX1s"; e_fb_twtaskhandle="AcQFpr1Fl2i6mN-Z-NlvqMS2Meq-0A601wfaVnMZY3XpnY3Mpl_R1lRkHmwhXAU-dwFcr8x1rdcZiYHYi-bZ6kgn4vxbD4xiOJno"; e_upip="AcR50VST_j0NWqTNPGEsUp7YqfzzrWHlbR2pZk_mB382rT9uhbPZd8lr81aVlAUprCR_oGlx1-ffHYBQGfmsVR-2NlsPh5rxQUE"; e_fb_zone="AcRmgv4K3izpky4saDa_TeFgUXFe9hHDCIm6Q6XxNhaAm4zPFGG33o6H3H2eUw"; e_clientaddr="AcS8L3m-eiqYqdJQI5-MjzmsUq8k4EpXmnU0iKLD1lZ66QcqVr4X9UGB5JKYsgPsL2kL-ekUJQXSvoAvS18"; e_fb_vipaddr="AcRqjK3Re9-_tfe0RRcQ2F5JmIdKbcLPsGYr9UvV6B8gb52XKbyK7PPpqo36RkgyoZoicg4jEg"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=14, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=797, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-10\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-10T16:00:01.117Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-10\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 338272137,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 678825,
        Symbol(triggerId): 678823,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 10-Jun-26 08:59:50 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AHvNrzk9u0JTrrhorQOubOo',
      'x-fb-trace-id': 'HjApyKaPNs1',
      'x-fb-rev': '1041198376',
      'x-fb-debug': 's7DaKchEYAf7AJQvJCFEEgzqWe+kriNfqPBVts/WtGUGe0LHsQIod5iRqGGp/z4l4ojWVxlIGm83QoxRUq8icw==',
      date: 'Wed, 10 Jun 2026 15:59:50 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcS7PxZSEjPDDG4q9TYUcYhgklsaGO9dBNVxTng5ymaPm_h5voiKzS8m3EN9nAimNDdJ9a7_8mpaiBtiH9ek"; e_fb_twtaskhandle="AcTLgdwQRvlV4sayyDT6rOul_J-jMNy-KMtezA1qhvm2Lpi2d1UeAMdW4x_yVC1TmSA58HlYw5LR41AmqIzouvNAxX5s49v-xb12tuz7RqD3AbY"; e_upip="AcTJ2J_dnMYwbYZG6B3nMmHZVshKzwiMzCkIG9UjBG-R6BLMVYXrPSF2r1gq0lHXY5jf4TSeE0xb8Q2HkJb1er6xpbVRJKITmgYTEzZhTg"; e_fb_zone="AcS6Ey226FNbFiST9In9nyaB3bid-4ytM3tVwywB2djirJh4c8G34CAD9jvwo_bh"; e_clientaddr="AcT8N4Ba47ft9ctSCGNynX_1StA25EiD0K_NBpOE-elrRa6P-3aBH12mNFyqZNB2f7dQ1H0h8zYM6xonhQ_rUZ-8qnYtaoZZycZIwQoPCSGayDnF"; e_fb_vipaddr="AcRJh9E-LiHMJlIIMKNwepB1lFGxRKW-edjH_R603ItZwIT_Ws9xrvfXPhriQSM8ia273Ab5UjQR1GIkpNBmvrc48a9m-diM5bU", http_request_error; e_proxy="AcRAw9GUPS2Vo6KCG0XjvjlMXQ2Ys-ugyJ9_c8CVYSmrr8CTiOcJtffHz4uCkGlRWsRz70Nu7QdVMvk"; e_fb_twtaskhandle="AcSpdxRiQ4CTiEWIhCUv6DzjLGEcLYowJItU7TTozUIuw9zewknWcmWTYRKdz0RsmRM6MRGneEOBx3XisyH6KfxklaIWkD7xoaU"; e_upip="AcSgzIF2YfVin4fYria2cCBAATTzcPmae0tGx8JczXjypGKKOwSByzWAPlBZ2X62yjfuB4gK2ZyLjsuvZSaXCTbTAnAUTa3e7xM"; e_fb_zone="AcRGFHxBtCiPUizMCzSVoi9KeOgnFG5OqiQBz3OvoECJkkUqzalac0zzp2G4zg"; e_clientaddr="AcTAApmWtL9gkYIQFx3AW2ZEZY4N2QGg67kRSvjEReFFgv5pwsoJaoi-rV9XZckFAPmxCeWmAuFAPBpPoWU"; e_fb_vipaddr="AcTZ8m8yTRXhG9ssmfi1vVYMQhNs__-q_owCNKUYpkSbOMQhSK3kpOzTPmCOvA3JghpFx-4vzQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=30, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=776, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-10\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-11T16:00:01.066Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-11\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1274409441,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2579353,
        Symbol(triggerId): 2579351,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 11-Jun-26 08:59:49 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A3mRaBRYHMYK52Cx_Ieuh2k',
      'x-fb-trace-id': 'H4gSYLI3czf',
      'x-fb-rev': '1041279790',
      'x-fb-debug': 'CWwfIqBZSKKdKgkc9qmKjAIqDgMuZKxLU2/hryzt1ThTC3c1g/S78XUfrNoY85WVEdZWMjN/xhpbBeOKs0l4Qw==',
      date: 'Thu, 11 Jun 2026 15:59:49 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSQCVVVAJAnkfxVnkwOjjFK7C3nDyj63m3OIY6a1Vp31pfWPyFtyXPSbNMVrNmjrhXKQSCNFHir--_rvirA"; e_fb_twtaskhandle="AcSGc9-cZlAubFHfGkMhgyb2IMQe6PzHoGpl9LxP3YqXmvHRAPnN6QRzzgmymKg-bvJ4_gEnwWHzeT5P6pmh5V5o15Eu0BLNiCjzDjYWFtxmeuQ"; e_upip="AcSGR-Kv384AM9b6CEQq5Ed0tQPR7LBOsERrEHGMO6BTE_DkVUwk7EchdC_ZYHRYZtq-r_GaxlbxLA0Mg976j9RP8MB0OhLC6tnzEMHNDgc"; e_fb_zone="AcQWgHvUuJleOTOjeDnswNIT1KHC0Od8yse3oZ7G4PeYCQoFLuzeZtW3DJZ5m1oV"; e_clientaddr="AcQmiKzyU64HZIJyz99_UiiNdwwiq3UZAHvVIEzXbERb5c6QbRKuosvb_HlNNLE8IWE0EdHEBnx07XoIN2lx2jUioF5OxrEydrf9qP4m7alStj4X6g"; e_fb_vipaddr="AcT7QnJqyj3XjH0rGt9xRg-RebBimn11buQpm9HTJS3SDncURAh3L27HJDvUSW9nKaaR3Q5YPUOXlkEJo8JA9DPpsgOnOmxb8Yo", http_request_error; e_proxy="AcR0DerwybZfvujAlGFV2lFzo0BNXKiNeiDRAUOKUJ1NsNzkxjLwoG4JojxBnJEgBwbUkTZUt5ET6xk"; e_fb_twtaskhandle="AcTJSqVYH59omuz4aLlzXUlKv-1EmcqT6ChBNYMNWMhqiD09LqacP3bM7Lw8s-BdAwXaFRPOJ4zM05egB699Q6V5PeRVAWKhe3MT"; e_upip="AcRwIarK8uGvAKMqvE9VWKwuMfGGitRcGXP9UcFssMgFNfH13cfv_N62ibfcFGYJAMJ5xZtO7MKt9uyovMkULtGEGDEcCbL-p8k"; e_fb_zone="AcS1e2-QiDUng6omLCJ0zJHUZasNgFsPJK8PAH_rKM9bmYGRvQSphX2ULCjANg"; e_clientaddr="AcQea3WcOtL60PMXhvLWOwbF3sQyahAXTRvU5iYWBMU0qwJ19LxFc-7Vg9RUkCypCfHYLXylTykkxUSKBG4"; e_fb_vipaddr="AcQpCByJMtpfiXjBhOE_6DsEgNaQj8PbbvbcrkKSpNL64jHPH80vV0td4P8_srUSU_Fq3TDVmg"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=13, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=759, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-11\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-11T16:00:01.288Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-11\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 424672308,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 851902,
        Symbol(triggerId): 851900,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 11-Jun-26 08:59:49 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A0gTtnTj0JL2-78kL5K9uQz',
      'x-fb-trace-id': 'EklA9LStWqx',
      'x-fb-rev': '1041279790',
      'x-fb-debug': 'dBnBAzpz1mciGchqa4THlCuLdmhWih1A8+Z4GtZ/KDNYCNHAhO2M69SHEP3obj76xuxYhd69Dw1p/n+fPhZlng==',
      date: 'Thu, 11 Jun 2026 15:59:49 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSr9ujdLA-dyzZ_D6JPprZxM0IwWHONFw2JMt1zKztSIw-i41nYgvcwDCx0e7tkWyO75Sqx-Ro0_myGjNOS"; e_fb_twtaskhandle="AcShP5_S0jU1lZP2Ww9iK4oZIvlj2fFZnYNZFkVAcPYje4_bf0M3O1Rv__1ve7DdwdjGE_iHKZGBvIIJhCf0hkAgEqrh3g4-nBFdmRDJxYyUlw"; e_upip="AcTxCvn_OEFW7jU6iByCjT4F-NISO4mpl43uHvIQKAR3r11-2qHYAXeyipXZRY1YgwhZLyz3Q3f7fKvRsnz73RlAag9vDlyw5T2E1kCASQ"; e_fb_zone="AcRlQvYheJqkX61uhQCYwJJeDmNsY2tRkuNYxrui-GpCxoMD9IJIpRLEnj4wmejm"; e_clientaddr="AcTFbT9prNNh3E9XeFLE95wBPsQk7CJtaaNMG8lHKE3zQoj6Eg8qxsLBtP7_ZRO8HRpRt_jf1qy9yhgM6wvJ1yqo0k_kKhd2ibNP3_KiuOTjNZLSCg"; e_fb_vipaddr="AcQpRcaXT_pUJOjGZeDcB9pXEXRvMyHoxIOeS4QvV-mHPkRjIK5TYJS4E1tGx_ribqwL-VC-5fL5iou7sWRdAuJnmxXkk1R3tdE", http_request_error; e_proxy="AcRGs0HSppThnIFD4wWfwnapxqhg1VXhctYVNn9VcY1nryzlfRDuRsmkMvOO3yhVueMS9aDrG_6Tr9k"; e_fb_twtaskhandle="AcTLlB67-x2ZNpzPGwu0K7ADUsKqmv81KW_lMcCir7_fw9RLgeGFC-gmpEIPtr1lkz8AT7-HmkMXXgmGPHaI6i3aQ5AFXdb5fWDx"; e_upip="AcRCak2nSgwffBISYDnuDQmxxYNf4mRfaaG3T5NopSjb7Ah2tcRVPd3mxPUVpe8NWKtJImOcbBhGPxoqFi0-HBmPgIuki0Mks2U"; e_fb_zone="AcTw9RGfjoOCVFfRU8KnMl_l2w1zK3MKLSKe9hmR2T0QHdvxy3uuc_e5d0Y6vQ"; e_clientaddr="AcT-XhjKkj7-HTvyaEsqO1YxK-eJ-wLXxrITuhdMCFHbwE9kcZCKmen5J-jvEbmAqHMkqkXThdjtNHtssMo"; e_fb_vipaddr="AcQQ_gQLwlXSvi3w2edO1BcgJRDSb9qsQppvW2SK2wD37fiM_hfyGlYYHB_JUcxM5Qz0XI5SUg"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=13, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=751, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-11\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-12T16:00:01.381Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-12\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 511085854,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1024930,
        Symbol(triggerId): 1024928,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 12-Jun-26 09:00:02 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'As5NqIyZg37Mgss5HAQyNEJ',
      'x-fb-trace-id': 'Hjt/Arboc0M',
      'x-fb-rev': '1041357421',
      'x-fb-debug': 'wXjwGxVPfpp9s7PWAnOKpQn5zExqQF5wZR44G4EpfuXPlg4z9T1ct+54SE0hjXldW4PHiRsOU8fd5cuaq6VlLQ==',
      date: 'Fri, 12 Jun 2026 16:00:02 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRn9_PLNzYHA_MWZ2AR6iySlQRmS5_TjRdjQwQENE7pm1U7-AtOlVXf2pt46jTLiaYjo7nc4erNAdJwvEMW"; e_fb_twtaskhandle="AcRlDnjo-5tbiAYb1xY9dZJpB4D70L5M93oX792CH60XXw6Cr6lFVb8yKK2AUfWCmEbwdtm1zvYZfYoENQMNAj52hHjGLH30L1O7MFFLCKjtIA"; e_upip="AcS7iBhvawr-BZmRtx8G-7xrYdYleBVKh_JcyQ4OWKgkxvNKIEkVIm0ngsAwTddd_AWWHzbWr4i9CFvJK41C1wTeyfZwTEbUIAbk8h4zl8s"; e_fb_zone="AcToibGJ-Ijke1FNkOXKjdvLb_vDtp9r0ubPjyMHMk9QW02w1a448SFoGGimDC1S"; e_clientaddr="AcTBIs9zbsz_-91XD-VWvgZOfQ1QZ_gvvGrIX-nJtYo2E9Q687ZXC50gsFw2ASG7nKTLYfEj4wkDCKzENa6U8AT7LYQ9X8_OieI7l785bqQEJ0_AKA"; e_fb_vipaddr="AcRvriZmveXY-A30Yi3_mTHa-wB5fgjjJbaaDmPqoioHKrXRnIdL8CLSdVbQqTvM9BjpbVSpPzNUJbj38X6a2t7jBZeWhvRkPYk", http_request_error; e_proxy="AcR6orobdjhZI0wqQ0GGNJnPhdlo00jvwCwnAW3Pufsa3YW25h2mTmn5BmZOs_yizq5yklpck3MWFf8"; e_fb_twtaskhandle="AcRlH2Z7rRUtF8fsJFaABUhIbJCTGwKdgRnxloKt63mQu9ERar9vmV683mUg9xZOn_JoW1ij7rttwJW9OejXYiJ-8DIH78U8uY8"; e_upip="AcQojE7hfIVmyziVn5AKmwp80cetax-NZDbKDB4PjjhOll8z9aTVZI2_PbVN6SK5A7QUUU0JCgxF6_1T2GN5BHu3iQJl-xpE7hg"; e_fb_zone="AcS5xJMHACymcOVL7Y8e2VH1_Fg3Cs40P-xjwFf9n0Uxq3uHaWGHWHs-77WfzA"; e_clientaddr="AcRT6G6j4Z4PMHdrBId2vLIDeOPQeAJrXfB4LG26vUMJVW8iUgA2ImXyH_-iwMbtL4i9-9m4Esnny4Ffm8M"; e_fb_vipaddr="AcRF2jZthkknCjJAMQKVyg3nz7qro3PP1XIcbsYCKAo685zhGskkc5atadKcx632-syMUddhcg"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=765, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-12\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-12T16:00:01.741Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-12\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1360823569,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2752627,
        Symbol(triggerId): 2752625,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 12-Jun-26 09:00:02 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A6-E1bJ3AwKBwMtmLmeaiP1',
      'x-fb-trace-id': 'BdlcV7yk1xK',
      'x-fb-rev': '1041357421',
      'x-fb-debug': '0zqT8lTtl1DPLoh9vuzwfK1OotvxlyfFl3r3vjaddS7bL4DyvxknvzNv1IomcmJX540QqhpmEsQVPWKWQZbtAQ==',
      date: 'Fri, 12 Jun 2026 16:00:02 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSCz5jCwQZ9JFbu-Y5KiKd-wAGCIpFYkO9Q5BHDzh6ujjRWaKKI4eO1SgKTzXzx8XNs3i3Iug0VeA0pW5t5"; e_fb_twtaskhandle="AcT1qzJDjjx_LkxiFQ_SA4276rCs1TCAeD-bKZ_6YuNGStVfFVwF08RsAphp6GVnbsJGFfWUQMm_A79Q3Jywo1TagQrcL0NZt9KS3cACu4uVDR4"; e_upip="AcQIIHmT8Z9vqdWd7Xm-SHdhmnSPO_ywCpCXXTtqpITh66By1ymZioApUKxjHeZqJRR5xxXEjvWqZF5YGwT-_EkhXgdIswValJY7fBqhZYo"; e_fb_zone="AcSRc6CKz6428TZq5G4Y07o3XPmtKAnDbiEHAG9GBfT1IDQuGjoFAU0ACLpq5Zq3"; e_clientaddr="AcT61dBH9KineaIVMoZLdY6uL9vd1aMscsDcT5xKPU6WGQGSKKP2JkMCPk0ug4rXhXjl1r4d_1bzpuAXs2GN3LdioGwFLMIMrPCHZ0OGjCwiuujiUA"; e_fb_vipaddr="AcTrkAEISUwC4HzcCBhRm8Yky_6QUdogbbaFQR-UwAw4JlD-d4Zsi7MtVsBq86VEm7pCH7LSf-5bL6SiJecvar6He27Z7k0regs", http_request_error; e_proxy="AcQvwfWbofWUdDo_n8Pka8YToMitxjVl1kMZD6eZcJWONuLHp_obVAyU-evFYUk2ZkHlGCYh18QkD_Y"; e_fb_twtaskhandle="AcSsnIbVftKbXUpEaanawS6HXAmY_Ki6pj-Kqxm1kRggWQas0jMYaTkmI6dMqqQfa8X2aTLuD1nZyG3UeaIHk502Tvge8bKDFLrT"; e_upip="AcS278zdQjwdrrDvpLrKg56kx6Unfggh3cEQp_OO5hNHigBnpAG-QEpk_alZmmUvXNDr8buOwZvtzEz_H_URpQH1SUPGEsEhgfA"; e_fb_zone="AcSYWTOl2YfXF9bpih8kV_wnrsOKn8_bgbPrpLD9hdk9MkDaFN4ImLFNzwIBFA"; e_clientaddr="AcRdQEf6Qbj9Vp-FvZkPyoL_B1I6BQg2GduDwH20crQb8UkFyuiPgdQdP-pmc75cN0awNqhDeyI7bGzooOU"; e_fb_vipaddr="AcSymlaGLPlkpt-uZlB1ZKArtpdKOkm4FlvbSQ_eWNltrI9JHh_Zcap80fzoeI93mMB_CZLxmQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=758, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-12\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'getaddrinfo ENOTFOUND graph.facebook.com',
  stack: 'Error: getaddrinfo ENOTFOUND graph.facebook.com\n' +
    '    at AxiosError.from (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:874:24)\n' +
    '    at RedirectableRequest.handleRequestError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3299:25)\n' +
    '    at RedirectableRequest.emit (node:events:521:24)\n' +
    '    at eventHandlers.<computed> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/follow-redirects/index.js:49:24)\n' +
    '    at ClientRequest.emit (node:events:509:28)\n' +
    '    at emitErrorEvent (node:_http_client:109:11)\n' +
    '    at TLSSocket.socketErrorListener (node:_http_client:593:5)\n' +
    '    at TLSSocket.emit (node:events:509:28)\n' +
    '    at emitErrorNT (node:internal/streams/destroy:170:8)\n' +
    '    at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-13T16:00:00.229Z'
}
Error in scheduled job: AxiosError: getaddrinfo ENOTFOUND graph.facebook.com
    at AxiosError.from (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:874:24)
    at RedirectableRequest.handleRequestError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3299:25)
    at RedirectableRequest.emit (node:events:521:24)
    at eventHandlers.<computed> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/follow-redirects/index.js:49:24)
    at ClientRequest.emit (node:events:509:28)
    at emitErrorEvent (node:_http_client:109:11)
    at TLSSocket.socketErrorListener (node:_http_client:593:5)
    at TLSSocket.emit (node:events:509:28)
    at emitErrorNT (node:internal/streams/destroy:170:8)
    at emitErrorCloseNT (node:internal/streams/destroy:129:3)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ENOTFOUND',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-13\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> Writable {
    _events: {
      close: undefined,
      error: [Function: handleRequestError],
      prefinish: undefined,
      finish: undefined,
      drain: undefined,
      response: [Function: handleResponse],
      socket: [Array],
      abort: undefined
    },
    _writableState: WritableState {
      highWaterMark: 65536,
      length: 0,
      corked: 0,
      onwrite: [Function (anonymous)],
      writelen: 0,
      bufferedIndex: 0,
      pendingcb: 0,
      Symbol(kState): 17580812,
      Symbol(kBufferedValue): null
    },
    _maxListeners: undefined,
    _options: {
      maxRedirects: 21,
      maxBodyLength: Infinity,
      protocol: 'https:',
      path: '/v22.0/681389405061633/messages',
      method: 'POST',
      headers: [Object: null prototype],
      agents: [Object],
      auth: undefined,
      family: undefined,
      beforeRedirect: [Function: dispatchBeforeRedirect],
      beforeRedirects: [Object],
      http2Options: undefined,
      hostname: 'graph.facebook.com',
      port: '',
      agent: undefined,
      nativeProtocols: [Object],
      pathname: '/v22.0/681389405061633/messages'
    },
    _ended: true,
    _ending: true,
    _redirectCount: 0,
    _redirects: [],
    _requestBodyLength: 257,
    _requestBodyBuffers: [ [Object] ],
    _eventsCount: 3,
    _onNativeResponse: [Function (anonymous)],
    _currentRequest: ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: false,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: false,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: false,
      res: null,
      aborted: false,
      timeoutCb: [Function: emitRequestTimeout],
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Circular *1],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    _timeout: null,
    Symbol(shapeMode): true,
    Symbol(kCapture): false
  },
  cause: Error: getaddrinfo ENOTFOUND graph.facebook.com
      at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:122:26) {
    errno: -3008,
    code: 'ENOTFOUND',
    syscall: 'getaddrinfo',
    hostname: 'graph.facebook.com'
  }
}
Full Error Details: {
  message: 'getaddrinfo ENOTFOUND graph.facebook.com',
  stack: 'Error: getaddrinfo ENOTFOUND graph.facebook.com\n' +
    '    at AxiosError.from (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:874:24)\n' +
    '    at RedirectableRequest.handleRequestError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3299:25)\n' +
    '    at RedirectableRequest.emit (node:events:521:24)\n' +
    '    at eventHandlers.<computed> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/follow-redirects/index.js:49:24)\n' +
    '    at ClientRequest.emit (node:events:509:28)\n' +
    '    at emitErrorEvent (node:_http_client:109:11)\n' +
    '    at TLSSocket.socketErrorListener (node:_http_client:593:5)\n' +
    '    at TLSSocket.emit (node:events:509:28)\n' +
    '    at emitErrorNT (node:internal/streams/destroy:170:8)\n' +
    '    at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-13T16:00:00.802Z'
}
Error in scheduled job: AxiosError: getaddrinfo ENOTFOUND graph.facebook.com
    at AxiosError.from (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:874:24)
    at RedirectableRequest.handleRequestError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3299:25)
    at RedirectableRequest.emit (node:events:521:24)
    at eventHandlers.<computed> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/follow-redirects/index.js:49:24)
    at ClientRequest.emit (node:events:509:28)
    at emitErrorEvent (node:_http_client:109:11)
    at TLSSocket.socketErrorListener (node:_http_client:593:5)
    at TLSSocket.emit (node:events:509:28)
    at emitErrorNT (node:internal/streams/destroy:170:8)
    at emitErrorCloseNT (node:internal/streams/destroy:129:3)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ENOTFOUND',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-13\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> Writable {
    _events: {
      close: undefined,
      error: [Function: handleRequestError],
      prefinish: undefined,
      finish: undefined,
      drain: undefined,
      response: [Function: handleResponse],
      socket: [Array],
      abort: undefined
    },
    _writableState: WritableState {
      highWaterMark: 65536,
      length: 0,
      corked: 0,
      onwrite: [Function (anonymous)],
      writelen: 0,
      bufferedIndex: 0,
      pendingcb: 0,
      Symbol(kState): 17580812,
      Symbol(kBufferedValue): null
    },
    _maxListeners: undefined,
    _options: {
      maxRedirects: 21,
      maxBodyLength: Infinity,
      protocol: 'https:',
      path: '/v22.0/681389405061633/messages',
      method: 'POST',
      headers: [Object: null prototype],
      agents: [Object],
      auth: undefined,
      family: undefined,
      beforeRedirect: [Function: dispatchBeforeRedirect],
      beforeRedirects: [Object],
      http2Options: undefined,
      hostname: 'graph.facebook.com',
      port: '',
      agent: undefined,
      nativeProtocols: [Object],
      pathname: '/v22.0/681389405061633/messages'
    },
    _ended: true,
    _ending: true,
    _redirectCount: 0,
    _redirects: [],
    _requestBodyLength: 257,
    _requestBodyBuffers: [ [Object] ],
    _eventsCount: 3,
    _onNativeResponse: [Function (anonymous)],
    _currentRequest: ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: false,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: false,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: false,
      res: null,
      aborted: false,
      timeoutCb: [Function: emitRequestTimeout],
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Circular *1],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    _timeout: null,
    Symbol(shapeMode): true,
    Symbol(kCapture): false
  },
  cause: Error: getaddrinfo ENOTFOUND graph.facebook.com
      at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:122:26) {
    errno: -3008,
    code: 'ENOTFOUND',
    syscall: 'getaddrinfo',
    hostname: 'graph.facebook.com'
  }
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-14T16:00:01.698Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-14\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1533623525,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 3107284,
        Symbol(triggerId): 3107282,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 14-Jun-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'Ao7jVSfDhnF_xRsq88f4Xuf',
      'x-fb-trace-id': 'F3y1TXr7OW9',
      'x-fb-rev': '1041442250',
      'x-fb-debug': '1Zf+VbtpTSteeDmpf5DPOelARe7esCPs2qFgTo98oGUdqetON2aQgCf8VrwgDxWuNJ9D+BmVIC4LjeGo3i0F1g==',
      date: 'Sun, 14 Jun 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTc4YFdH4t0Fw-HnSqBwBjZawtIJatuaOdovI1jI3fm3jHYjU_MZ-5lXyzCEOd-nuSdYX7zJQ6hPSVEo9A9"; e_fb_twtaskhandle="AcRsaHR8sbF2GRmz9Y0xBOPLLrpxdLh9h2s5H2_0TUzesVDGa5ruCwiEPmPXUyPTNXgOWRussCicHnK6azCyz4iDYwhbKbmM9FTiG_RCfoGhjUqpbA"; e_upip="AcSBk1MLbAfX_-767os4EYMosEmByGMQalA9x0qKKlecq8pRmIA-dwOfOxZkSCcWAYsPz5uMdR4h6ShM_e-Y8ohggMpoHF7cfnmGjdPx0HE"; e_fb_zone="AcQzlzScDG1D6bzBuUZiXXsPaFjvPoXQsjpryGzxpEQPbN46uItay1aMbQ33R-AU"; e_clientaddr="AcTB_kowW9VTl3Tbo4FqENYKAE3UDOyr8cg2pPuRAralDGzGwk_U5OVUw3xWNV8rpojVDUc2zT9q_QM4VHZgLmYgOYQTEujJX0PBHAbeBZO6WvXvKg"; e_fb_vipaddr="AcR_8u4NfOjz_TwHt1FGWRbCoYeEDTeP-OdO5lka3eLQIhUWRwhJUx98J-xuLj9_bK6Px7tSyiCt0538zOLszuheUdttQIlnjxI", http_request_error; e_proxy="AcSAURQpsuPIKOpGCKXNYzwFrPnBsWsxw1fx_LC1GS28zKNLKCtY3HqgLz-dfAxIw7V6qGROVVb23NY"; e_fb_twtaskhandle="AcQCIgRaW5eXuBP6XSjsHkFqVbsnNlEswTTeTP4LXh8mQvLzSOGVmba4qMzzpXFndcSr8vEa81UcGHH7TeEyUXFrHwpUhcmiFjqb"; e_upip="AcQqhbYaYAn3CGAiYMGpL6VeQxzp6GiAGcVjxziQNMIVlFyChRZDADqVWn4qrOqCVAc-OACPO-49hkcN6V4ivvHNkgMdq7Yd06I"; e_fb_zone="AcQ4TvljpQCAFSfWqanlp2RKe4jkgJ769bVoG6kDnwxlrXF1xahUxphQ26fiwg"; e_clientaddr="AcRdALfFe_ZO-JmIEEnuBZR6WPY--lqfVgcgdNQ2t7eoK5UW9i01VqvR5wR-L24eWt9UuJ-TK0Ke-icMKZo"; e_fb_vipaddr="AcSV2NKOyzIbKNT3rZTSgg22EMMjeiG4DZF0goyYryA_WdGtYyqFvBDd7X-WWn3LqLe5fRTfHw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=801, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-14\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-14T16:00:01.801Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-14\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 683886273,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1370916,
        Symbol(triggerId): 1370914,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 14-Jun-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ARzggOXAuu-yp92-x-2sk5n',
      'x-fb-trace-id': 'C9IQIFhtV0V',
      'x-fb-rev': '1041442250',
      'x-fb-debug': 'dg0bjJNJXEG1SN1qFw2vT/wuWRVt1GT3JDkVlDk07av0gss2bxT04WgbdKQp7iKHEzLas3VBBJD0sHByaiq/+g==',
      date: 'Sun, 14 Jun 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcS6p3atSlAdcYhjbvOXdjGR6zdCyt8ZuHKuirVZfSqkPB1-Nx3DU3mPfGX4s7a570ExCi7jvRT4U0TxL0U"; e_fb_twtaskhandle="AcSGNzjcYUl1P3usdp-cq7JTSI2u5WEqX1Sh4gNdu1yR-PBfBBpWgfqAs4BDhPch0cANLfyK8oqTaG1nB08sqTseNRSB2hgMuvngeT-fr19KmDg"; e_upip="AcToryzGWXynjBeancPTQKVnGOwUyaZt9t2cbiBpD4y9QL7lErF2R-L9M_ZwmI9banqef_NhXplskfA1OVtKXVmDzBGYpor2WgvoC9mIAAk"; e_fb_zone="AcRI9YuG_7BoedqtNc9-7eCllhOYF4Q0oPBtC2Gsy-Wt9gA8gN6a5juv06umWp4-"; e_clientaddr="AcSCZzGDzz36L_d-7_9CjE3Wqyg6UA0-46PVmYTpG5cDfHWx4xQfvxIPBsMMiw0BYO2FPQnYAx-Zwigur5jrpIsVWVjLn_o2qLtY3GkH67IweIsiwA"; e_fb_vipaddr="AcRUpn9SvcQYcpQtPsstjRLz2nPkQjbvTERodqqbsIExxis6knwu6v8iLJjx68-qYU4nh8z7rD3Rl_u1Viv2trFx62VHLhX2EX4", http_request_error; e_proxy="AcRoX5Hcyo8_6gKXrN_lU2eoKY7Q4jZY26znIJm687sF-k9H7LGlfanAK_0UOC1z1H00mzCIySU164s"; e_fb_twtaskhandle="AcSAajJjkSDkc49qRWbzYYWKRN4iXDeifoxUmYTpOuAI5lbNns-MyaxDvri4CHTF3NB0gAop-3PYwVwpce2UBQGAuVhkZUznLzmD"; e_upip="AcRQMnmcoTy9_C3wrmlRnBtaG2qm5eNxXK-rzl1RSwHgudW_ztL6tkbMRtak0ghjIG1ts-8clMEYYrRo4HEVH6eWcBHt577fums"; e_fb_zone="AcRl3x1WT8bob9DJeV573S1vEWcPnzWn4p_fSblvHhmYyF-9WFM3670AvtbZXA"; e_clientaddr="AcSZlV0U7Wf2-IMHkxieUrF8OW3Cc7NVDsPEaTS_yt39-RcUmP4APEx6AWgWPPHI-rss4d7LeG3XsJL50FQ"; e_fb_vipaddr="AcTqmnnPogdYL4IY7-M9I0SbylkavgpZtWpZBrqRehdoL9rzpPHMdreLOp0Gh6omzbI0BkO9Lg"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=14, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=752, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-14\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-15T16:00:01.266Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-15\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1620023094,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 3286669,
        Symbol(triggerId): 3286667,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 15-Jun-26 08:59:58 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'At3r3dO-kjGy2_7abQ24Xrl',
      'x-fb-trace-id': 'EUoORrn6tK+',
      'x-fb-rev': '1041463161',
      'x-fb-debug': '+zhaxEf1L3x03p9qxwy5mSOJi6k66E5Yps95c3Y/SlymzAq5/QvMt6Pqlnza/USrIeHr+X4La/PQgeCA06ihTA==',
      date: 'Mon, 15 Jun 2026 15:59:58 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQPkGZsRKaVdOEkmcOkX0hUzBt0LOmfYuRbZ9Q7g1cL1PqrXuGCeW2IhPVtprlTPXn3D8naNxf11dpNdbQK"; e_fb_twtaskhandle="AcQgaffsgawKIy7rZOU9VUlHlNrCbM61IFCtx2sAUh7kl59SfALywVrTQtMTwiLnPno1mGlnqEmWhrCcoTbj5CkOBtlMp27tduzoxAG8cb-2_A"; e_upip="AcRjgi8C6H8y_ooE3BlohxicGxv_5aDVk9pwWPXcOgA2ILg4eWLzmma-M8fpK5M7Uy0pNJmweYTAfd9HPUpZyRCsoaxlxOhWXssxb3B6pw"; e_fb_zone="AcR-Q3fMsqjRMlKeOapoXwsQhn4Aq-dR3JKjT71KHcKa59ESt7Bcbval6kmQJhQL"; e_clientaddr="AcQoIO8daswVsVJVkbR-_IsG99aZOjjH72b6o8nyzY5-4Qgm1aJH_CbHCRRFXq9KmkRC7cMoZ6dM86q21AA6exGuLOrJMPYD-a-z_U67nQ8jtaZ7ng"; e_fb_vipaddr="AcQt3yKYTGy5z3IXlYVCWvTmU75q1Lvwk9y-W4w9aIKCZ1dPFA0cJ173d-SV5FPHgEHw3fhsFYcniXGSFjBpi3tompFjqRvdT20", http_request_error; e_proxy="AcSnTmqUFJZIg1pda54uyJG6q9behNAnIqiA17-MZwxXp4RbU60V0S80OjGnQ9Cvn8nKwY2i6aMvi3U"; e_fb_twtaskhandle="AcRAovI3FYujYqdmLGJK-GTvJAzHIDTfR94c_NPv5_5-Rj0TUrJ_YPG8QH7LuL2gj7Q5uNW2zUgj8FBPVR29fGv_Nekt6JZOJl-V"; e_upip="AcRkqxkboaQ9GpX4VNqHoS7UKIwX-PC7ZgKbM1KZF7UCXIVkmmLecDoQQRuiazmuT549JUClK9Xrhin1zuXQJ6a490C8q51OJO4"; e_fb_zone="AcQl_Tdkiuqnh8sCsoZeq9ChGluG5LB26amln9EUzM7aGcAN8bprNfp1Z94bQA"; e_clientaddr="AcR2KXjceGJnqrUh861JhipG6WJqCmT2sfuuZGi29qKlql9EMp2CLznvVtqO2rkEA5xaPwaPpMLlDgaC6II"; e_fb_vipaddr="AcSDQc7I9sgqdyBnYZmvCMuO_0TtKFHU_OKp5-J1XBABA94YyABkg4MZoOGsNrufiPWwJ8aXjA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=827, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-15\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-15T16:00:01.450Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-15\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 770285922,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1546115,
        Symbol(triggerId): 1546113,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 15-Jun-26 08:59:58 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ArWExPC6gnXMbORMGxjfSyQ',
      'x-fb-trace-id': 'BiAIsPrGd+r',
      'x-fb-rev': '1041463161',
      'x-fb-debug': '6xaavNLHUwdBAornbaxhKGBEAjsU7AzqW1Ox40ylM7JxQ7hKZuDvM1aJbcBfUH9K0vdjvPHZfMiTiISxQLDBlg==',
      date: 'Mon, 15 Jun 2026 15:59:58 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcShgqtE94_tYHXfruO9atk5SOHsbe2IltW8Znnxv89wYmiNp30DTGQ_uEX48eON8gj1jKIRqFVryMXGumgM"; e_fb_twtaskhandle="AcTQpegac8IU7kRvp51TuqCDzj_WqtQ03q1Z-BTaVER3ghNDTKsaBen1IeG2Y0wXR12IJyVXraxcTvH-G4MQC1hx3Q7L_o6EowcNpujwH-hx2UQ"; e_upip="AcRhi_fZySDXPB6vey8F6uGz850559htZ45Vlv3T3qQ-9b6rCsdfDHpKsoVH3NRubIyw8s-pi4hwSa2q32ReF1vWksgQgrqga_AVPuACwA"; e_fb_zone="AcT-U7PJznVKARdURLss3fob57ucm8Ardma0_wyGluuoqKcibY_4rrcWGPLUNC71"; e_clientaddr="AcR4HsC32UOpp9rbKebBdiZZUgfSPVSPlXJ3IpF_QdbzIX0M_cb9cGFFcv4IHqvo-4kacv-iMd0RVMgvGEJUYUZ9S9Tr-4QoRx56gUpYp-hm9tfC"; e_fb_vipaddr="AcT0l8M3CmjQHpnNSURXWUlQ3SAEdqUOevCWC9H2aw9dGG3wT70OURSkdOXrhTLARpzt-cfFF-zSidg7hTi-yK3JxaXqTR0sM1A", http_request_error; e_proxy="AcRe0miGGziKdE22PJ-x_kaObDxK-MmWX2TGdyu11hQY39PS2kJQOfD6gRS47CHhNJ--UIuM_S788qk"; e_fb_twtaskhandle="AcThYRT4aUU-xJ6XGWl-pbA_Fkei-1pSAAGrxmCUMKveUxsvhN4uIfSsvk5Vn7a6BnXXC055b7XZpVp1qtrFZo5gUz1A9Z120sBH"; e_upip="AcTYPlcQlkBXbDgKBe35a6R8Ht8Tm5UJ6Ytdh0cRFs5LoWMOTlPO7YTIb7cqzHtO6kiH0YCL0Py9Jjwy7pn4T1jWYhFtYd_byl8"; e_fb_zone="AcRZv93BfAzyptbp1oRYBXn-IgnBaL3oGvpBDzbr4QJK1wQqRaIM2SLVu_MGJQ"; e_clientaddr="AcQ8btM17NK_4HCOqO6sDZp3sgct_mmiqnd_bgiDhY_St3qL66zIGv3Ubl7ihkbAG3xGslyZRiin0PXRQVA"; e_fb_vipaddr="AcTW97AxKZVb0PJiNjafZ8PXv_UxYCdiYa-_jvqqPFvTe1cxxmPPqLSYYONAggaC04oeAEzNwQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=739, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-15\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-16T16:00:01.488Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-16\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1706423315,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 3467099,
        Symbol(triggerId): 3467097,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 16-Jun-26 08:59:57 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AZif5clDpi3NvPBNYwK4pdd',
      'x-fb-trace-id': 'FLCCvB77jsu',
      'x-fb-rev': '1041558255',
      'x-fb-debug': '1OhLamow38scLtYpXHo3uvasD8B+NO9YbYMURBJDKJLy1eTAUDcJ8Uk79Hn/3IKUH1q8Vi27JOobqldyj4BtPg==',
      date: 'Tue, 16 Jun 2026 15:59:57 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTkP7RYtbkMDfBgfmgyy_vVjjS3Yw-9Q-k4Dp8nTncoyUNEjwHoHDWSViDhl95pUA1lOOJIaM2aJQOgeb5l"; e_fb_twtaskhandle="AcRfmpXXGxOLr3krFeQpng0PQofxMKPiLflI9Q-F5YLIc4toFwhpjQiCJaSYj4Ykp2tjwoMtos8BZx3uyd9LaBE9bw_vTG7aUQGoEmUKiwantTY"; e_upip="AcT8266DXwjSWJdCzMQyXKFoZ6ZtXjTF5YsNwRAUTOM9uXnxgDCLKUc0XPVHRwpWa22OJgvozsvO-BAX9nlTIHiMk0XYP3NzrnJRDey17A"; e_fb_zone="AcSNOxq0AdJrocCoVLnLz5H_WinFqQVj34lfMoXwqHUiAllJJp8xDlOba6WZX5cV"; e_clientaddr="AcQ_D8_a06w6qGYze_jpWJ1KlLaomYYfmKCgg16CMNg4S1cXBKUUyFaImyW1P6CFdbDd5hwfi5coh3SUxaPlnpHWKK_zbOt9AHMRFjF1J_smCEbb3g"; e_fb_vipaddr="AcSLHxXQKpyOcpAZCBqkXDU1RBgq6jPBhYRnfoDVimnXevatR456yS4H7o-dEn_yBscdmePpX1zb1B6KjovT3OxgEqQHQ3VMo74", http_request_error; e_proxy="AcQMon3nXLVSXSr0s2aMvZkMkH04oY0yeM6LYIdhmnaU61CAwbEBasZ8O_IZ5XBtgJTd3nTqKbXfBic"; e_fb_twtaskhandle="AcQ-mggjwO9lgDP5rKbHhgeneCOVse4MWF0mEbEtZVO1MK3C4kUAdMx78eNxphnoiFqEm1tJBd9C-oseNPUtsjlyJpaZXkHsgXo3bkA"; e_upip="AcQCqzFJntetla8CTdpEWPzW0sske7ol6TzMGDkfu1hlIaQX52G3NrfCoD6CeUaWl-nXbF0U3tv84Ai8t8CwQx6rE_rqhXTzQPc"; e_fb_zone="AcSyb1LTADWk75-XSgt5U2QMOxddEmRucBz6ycKega3zQthMKEoI2OCLf1AiaA"; e_clientaddr="AcSkJwX8Pv0_GrupAgXkYCMkMsuksnzAHmhEuxjus6iM2BCh0G5Dftwya-qRuUEYwYGgZ84uvGBw_xq3kwQ"; e_fb_vipaddr="AcTfFay1Yr9yxZLk7CgJb8-YwKYVnbHNk1Xk1W8sJ3HrEnSS4d6SXE64VOjRRSyuV9rhfoQwmg"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=814, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-16\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-16T16:00:01.490Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-16\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 856685962,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1721441,
        Symbol(triggerId): 1721439,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 16-Jun-26 08:59:57 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'Aid5LescOX-zFp52Vhblvrf',
      'x-fb-trace-id': 'C3MAajqHfuR',
      'x-fb-rev': '1041558255',
      'x-fb-debug': 'z+owy/WWnw43b1OrOYewPKcXLg7eKXQlnppB67rrQrCTfUDnWZAq20UYRVw45S+V2hM4yLAfUgumjNrvNQwLyA==',
      date: 'Tue, 16 Jun 2026 15:59:57 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQDJLCeiWB86qQhazSC429qJY2Z6KK6lz_fVOB0YoLXGpCFZagvr0SbHu6QHcVmDGevZIAeEo-AHfF290zZ"; e_fb_twtaskhandle="AcS5RVwNK8E-m0BWs6Xs6epTlzSUldD8KKHhtuIn1YgtN27IdJ1AS75dg241DLhPAkDSxw7v4MrxTzyMtClvjC-O91GQi7yQT50a38PRLQB1hGlcKQ"; e_upip="AcTC0k7uRqQJE6PnByi-V5Hp56Efg8IrZ9fH7WlnlqLV-yByKRRVwfz7QDTcR6jmjJFXRhrmtjSSApI_Vv0OF_l0bz74L0MsCazBFTSTS3g"; e_fb_zone="AcQ1cvj4i7h4DUlUJYdoRcUlTL717kQP8e8UY9bLPd0X7vr7Uc1j5OwG-0vDeEmO"; e_clientaddr="AcT03qCD7eMnYsy41hBzCYEuK7fOZQyEWdMLtFDYNtvb2mwHcOPMdx5XtL3Kd_pfXJVpdK0qJuEMoV8K3tLnW9EZ2mF2tvrKH68Z0rrw1aeeJUumUQ"; e_fb_vipaddr="AcQNKBvhN0oj41-PUVO432KVVOlSzhpQMMeJMHckXzptV-ktTYBwZ7ldEcl1ufeucVzm_XkiNsBxgyAQr4pvuFTURUg9QvUbWOc", http_request_error; e_proxy="AcTLbXWcpA4-socv3jWDGV4kCRJDwhR233MYajdVenmmDyRDa35Jr3VHOrns-3brG6GJ7cHtXma4s-I"; e_fb_twtaskhandle="AcTw9UtYkDyw-H6Fs5G9gUpS9NyaIXtlRI0C4QlrYKvsxZ2Q81Nmw3SYVby7jRzi0SLqO1K9XcdADMTiLjHCd9EkAQx9RaP1sP5dJA"; e_upip="AcR-gCSYMOxN70slwjIJZ_JOAa0Hm8MjnNhKCNmLjvAXrdBko1VNLaHh3cOQRtDxilt9QpZ3ma8xzptiv9tsXJbSCLrXhrmi7Ec"; e_fb_zone="AcRDPqYev5udQWPZ28ow8xRkcCRijRdFTIuNt78zboxzS0qZI-tVrKa9OTNDrw"; e_clientaddr="AcQA_zljI8ZdQPqFRa-YXs7lKqJWhqluFXnqfbH3VhdHfmBU84lf5bVCoiitNJ7nIkae38Wfnx5PzyQttQ0"; e_fb_vipaddr="AcTxNgbRvxK92Tre9UxoxGMwuedSSCDgxnM5gpSXKq-AwwyfjYzJ180mx-kdgEmE5u8tNWN0mQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=761, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-16\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-17T16:00:01.258Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-17\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1792823086,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 3640121,
        Symbol(triggerId): 3640119,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 17-Jun-26 08:59:55 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AvCzCrOJPXu7zQJ07-L9x-j',
      'x-fb-trace-id': 'GMs87I/w0It',
      'x-fb-rev': '1041640711',
      'x-fb-debug': 'fFaaTKLt0STYRwzBcqVt/Xl+CUr3ZdwdQzj4hCH4YyPhVSqrf8YCiNbVSyqY0svr0Fu9ASN8w4YAUDFUbqpB9A==',
      date: 'Wed, 17 Jun 2026 15:59:55 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcR0Pr5aHf41Pn49Q2XfwwUz_dUAEgmhijnPjsn6w9xBoVP-Bb4ZqbjhCKmWqBW6gQXoQ-xZ093DLOnvU2kn"; e_fb_twtaskhandle="AcS7_ZbncDuxC9iF8bRWKSXEse_xZzHNBlgsp1K0u5Dot4-HNjAVm6EiKzMgq9N349cFDXZiq4D0dE0uo6JiBRWzSgHkcdqf5cVMe0K5XpzRRcU"; e_upip="AcRsqp7NnNq5-vKpV1_ukNa8lCSuvVksW8g0wQkpl8MGUoPIucWWUz8z0JWf8o4OAcm8SVGGVsVlhp8QAUekwULrbMgqqrzDAewVVuoDDrg"; e_fb_zone="AcTASKfVYlMDjYkIRWCQJHez0Av7NicdZx_HjwfvDkaUzhQ6DOPrIQte11UBKVNe"; e_clientaddr="AcRzKb2cdEnH5Kx2KErRaNfrN2PscsTM5SgRo15xqhvGhcn53EziEb_r2DiyKLw7Jt_3uM-pMO8fRNAvcYzIrKjRJqcOb9P_T2PNOKTsAETkY1dv4Q"; e_fb_vipaddr="AcSTGLs99msdWGMGjP9amvJVnieohgmyMm-MxsT4bug7CRkjgCs_4hVawUEkvNjS6IpRRbn-CcZerXAJYuJ8B3XMl5khBvl6uBw", http_request_error; e_proxy="AcTeOhNwgt9_QiuLWHZFn_AlQuh_KYkyfxOw6y1JIdhW2z1gdsKp5n4ah87PpYpW3h7-Rrc0iqaHptQ"; e_fb_twtaskhandle="AcQXNOzSfB8_HveGzEbVvQjP3TkAzY2TIvWvOzk2GtCWDU5eVPf6k4nKPsmYAW9O6CZqQ6uPfTdTOinMxDLaL5gt_jIMFmhBuAI"; e_upip="AcS154NkrkxXXzEwVFXVd_dDRp5xlvU7YiWCCeM-wuw8gBM6PvhL4yDA1ghWzJnWqjbWmECbDPnM18l3Fla2jv42AhGfR2kBGvQ"; e_fb_zone="AcTGt3ZSLlNO2twgdNBFTDw94GzVXuhlb_mVMk7po2naJKMT5inMKOd2xcSxdg"; e_clientaddr="AcQcdJIEynz68bDVECbtyWsXk4Ape_RfuHCRdwSDJyqXJHRg7WaeVDIgd-bVHh3E51Gf66XeFQlUpqJuPM0"; e_fb_vipaddr="AcS4t9DljNJ3eVseDNOXORmebTKEjOJ1rBEaBMlO5FZktfJnvIHrGMSkVvPGPwNiCQObp2WnrA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=759, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-17\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-17T16:00:01.331Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-17\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 943085803,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1894446,
        Symbol(triggerId): 1894444,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 17-Jun-26 08:59:55 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A_-CJxnIpg_FSZOYjr1xmWn',
      'x-fb-trace-id': 'H1gZfh4yCIH',
      'x-fb-rev': '1041640711',
      'x-fb-debug': 'UwZ0muxsWJ27JvDdsTO6L0vxIyqS0FAdXEtqbecaMG5I6XgJWmb0ymTGO7EbsTnzqvNwYFnRHxvSdgxKPp+zyg==',
      date: 'Wed, 17 Jun 2026 15:59:55 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTEwRb80IAdmt36H_TyPkhXbePHriktKhTRJxjKBd5nPLy9tWLk3pi8W5MPiqIbAb9b-8jeNK2xUl-X_v9d"; e_fb_twtaskhandle="AcRwgyK_je4uPX6kFOiaG-MVCO0BMoor5UmIaHp4N3dYS9-CPVSATQUcbkTyDXKqpKcvaJdrvUh38pflhLc7U1zDOMok68p5qF4BJZwhDXEeueA"; e_upip="AcQkYoLrioDkCUwXf9LJiecDqgVJyJwpb3Ceqp83HBvFboQunvu6ww8LSb2vJwXzH5OOGRMd4HP5wqs9XcP3yh6Xb9bHdk2ZHfKsPD_YaxY"; e_fb_zone="AcShV7hn7yOCN_S7W45fniNJRiPz8Qo3SBHwMBs0LPPOmUARxIhXBfqoVTWbYRxa"; e_clientaddr="AcTuZk-N_tq0rE68PPUpehu4pYw4ikus7hiHQjW-du3WWb8-dSyaCEyDfB6vl6uWYVswDDH0XuRwLhYKV2zHAIGYgmZdIX3xUuq7qDXv1eDvkLnSsA"; e_fb_vipaddr="AcRfRpychF3b5kGru85YgeqtINhVI0pk8LP7MHs9YaqtJEsNjNXnFllmY6EXh31LVR6wgbOfrWDLVuq-E-rhwHhAiqUAw_m465s", http_request_error; e_proxy="AcTVNbPbTO4ys6nJeB-b2Z35OIZBM65rrjCQ0GAQfXnTDIAvz7tOrah19K3v-TYbmpSrdszGRRecO8Q"; e_fb_twtaskhandle="AcQwbKagAG5PaxrlOT1m6o0tU3Fx3DatLJFyM0iZf1hW-IUWvyd2gjTMsW7VepZ8B_7kGNLvXoYcEl6jKC3sijFygUq44IytxE22"; e_upip="AcSvzX5VnGOJMpMQOyBtXukn5b91xaO-vzceOflMehOsPdYJpauRcj51mx52k2yTgRVpS8xHEZXKg7ct5lcnixzf6JEtThEbWFI"; e_fb_zone="AcQbbkvRqh4NltQfqhwqT3uuHD_9DUmrPaj09qfqWnQxMm3kMqr5Yv0YLpkgHQ"; e_clientaddr="AcTmPoejSts0j2CKn6b3lldJVuL72gtecWW0vcULYtjDLIPVyQ4j77R05Kfz6Ix0yjGvdHRz5L4UXZ_rV7c"; e_fb_vipaddr="AcQPF_Rg9S5FLM_cu0XSvC5jPOq3dlwDVySPKoIVLCwC_d984BwLdIHWQyplOvRzxsOzFr8-hQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=756, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-17\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-18T16:00:00.582Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-18\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1879222409,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 3814240,
        Symbol(triggerId): 3814238,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 18-Jun-26 08:59:54 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'Ap5PA4yM9HiJXLrGjR0Wopj',
      'x-fb-trace-id': 'BvlcuhIvfoh',
      'x-fb-rev': '1041723196',
      'x-fb-debug': 'Za0rpwxVBEf7rYcbCSKosN0X+sz4+Lwzz8bsP8b65wCAa8nWUes5RyT/1RAxCS8ZumiQTO3VroGo0XrfjAi6Nw==',
      date: 'Thu, 18 Jun 2026 15:59:54 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTOa21aoeUjmOZU7QXyrWDzdeNpgw7znekH4l0j-1uZU6F-t7gXAKBjTtItylBs9dS5eCpkleTinlwhTpY4"; e_fb_twtaskhandle="AcRypeExAzGPeWef2eGNaw3s67XYcKV4LNpovVdQd40mKzJKjuqOkbfzLBv_WoQ1ZVfqZsvUG9WsRhEbBjPZHHXPQiEGj94TsTh2u8IcqbqoNzk"; e_upip="AcRlAgAoZiwqKtJI77U-mvI1WORl-cMgu9LcNd_hthci1KXlNl-1PRAzpzake7d90s9AxzMBmSOQS1tgFedu9Ng_SQRmRmUuPCImDoXUBQ"; e_fb_zone="AcR_wieTgjRpXusAa-MdaM8qHq0AWFa-2ilXmu9Fmgk3151L5wdfzmU58jqE1aTa"; e_clientaddr="AcQc6vt_VTO5XmcVtO41JqJj9zM-vlE-wNVSqrkEMNOOhBCQCXIpLDUTgPLIfz-2H7T99_MZcB_fovIao9OAgbwg7bYQPi6SSrzV-8A6XJwFz1Imyg"; e_fb_vipaddr="AcQywQV_SnbPOK_dZAp-g-HMDX5fyEkmZ38DmDEpgp2hxTKPPTyifYQ-LNlse00yybcWVsz33GASnfwrjJLYyFyUMBN-grHvAFE", http_request_error; e_proxy="AcTnk4ziXHJk9YnZglBjaSOlIHBDEsOm5D0iarI5MTMoup5cJgGAm1JltJXsnwlqqodc_TtcEE54c_qV"; e_fb_twtaskhandle="AcTgAAvmwLDXcDU2P-fT4tHvOuDuBfzFpRTB2ANuvCBhwQuzMjjBCEY9fqUzkjb73bK4Q79Xs6I_7GwbmkAod4pPRGJpdkQ9FCtIs84Q"; e_upip="AcQSLqCzBOGh0EnB5D3s4wxLRmRO5Y2QJlwrEUziCGxn9wAzIgXjHoyL5Fl5loH9o7iMsWK52kia7wyYF-RVO-diGI43iQd_WOQ"; e_fb_zone="AcTq5wb0n36tO3Ru3pbwdIWlU94i95Vg3qsFABPBFwf81hNC1If0-Y9vvnt77g"; e_clientaddr="AcQdRVy7UA4-2GHePKvREbJeLAgwK0xYx0v40_BI3HWRnu2YGhLSGwMyN9fUOZr9fNSYSdOL71ASXi9OiJ8"; e_fb_vipaddr="AcQi2ag9F7aTAY5cqOB2XGN1JBoHfZxtzS89pFJUsEzz5S5QRJeFjz4lLXb5D9Z3dy42jdRO1F8"',
      'x-fb-connection-quality': 'GOOD; q=0.7, rtt=51, rtx=0, c=10, mss=1380, tbw=3709, tp=-1, tpl=-1, uplat=293, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-18\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-18T16:00:00.599Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-18\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1029485071,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2067452,
        Symbol(triggerId): 2067450,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 18-Jun-26 08:59:54 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AKxEmN9LrN8y48eVLhy54yM',
      'x-fb-trace-id': 'CjWnyolB1ax',
      'x-fb-rev': '1041723196',
      'x-fb-debug': '2R1des5hNr2awxN0rKudyQjzfO3X0ftc5yJrPNezwLCk4jWtbvJx05dzDuHmbur/xDRy1Sg9wB7kgDK6O1HjBg==',
      date: 'Thu, 18 Jun 2026 15:59:54 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRNSv40-WZ-sfKwZaBklPtSvqnyP3syTJ7Ino-r0vDk_choKoAWs2p7-GL5QTySwkUMZMbQPtgQW20RWS2R"; e_fb_twtaskhandle="AcQW-FdrplEn8m27HqMvHCaRof7TtQ6d7puEdTougzGC8qB8lUjgf4NU84uAlzOHDtMy_IrdYRcOpLf2F4_8WaefR39rRCobC5KWuuT264yJ9jM"; e_upip="AcSB4jaQZEXkkpY7y2cIYCMqGliZC34moWgA1G-UascV2zohTEwby-y6qwmWF4SmDoPQOibq9Z8EOnGSHpTuWDOBxrt8qsfWMD7s4wSStO0"; e_fb_zone="AcT6SIfP_uuBpLH2uUVPKJdRzxjZaOakmdavqULcwVqQ0SRURtcmYkEAQ6ICqDu8"; e_clientaddr="AcQwOoe9qMDegPVKo5hiwDljnKht6tTVGIDOtOwJ1OqjL0pSXmsX9hhyMM6uPwDUy69qaDZ2BgHPkq3VUvqxqpm6s8Rjvv9hWIvPpLU9qHugoChKuQ"; e_fb_vipaddr="AcTaaXOI5Eu7b-Z6JDN_YLVaSaEaYeU3D3mMahDFF57ry2FoCWMfuDAfteJ5tjuAmzPEjzABjaxEtFWI4oSXYQZ9GJ4Sr0I_pYY", http_request_error; e_proxy="AcQVkblWWOfW7WmbFk-0M_1yT7wTzjx4UGUgVub2iDuj8IVIpt_A776XuB5DzscAP2HuxMGofMgISQdS"; e_fb_twtaskhandle="AcQ2PD-2APgWE2mcsUfDcWzsznMk7K8EvnpjFwd2lbnaHtLOahdGTIkpoLvBJX7p07rPWoKNkzoerxuHPbyHA6vTV12HwPKrRIgfm7AFwg"; e_upip="AcQLuf1HOO-C8qA97Dp2DqTVoej45ZKqg5Gy21UFU0oWE3IQbnD4AnC_tcyWCnQtHG_3m7aIwvKmYhRQZ5CLGxCLBmx2R0dRsP8"; e_fb_zone="AcRw6MPND-N7b5REYp6vgMAOK2ubxsnL9SEOKlWVTEKdemcKLL_5CniV26XitA"; e_clientaddr="AcRJWcYogYndjSd227jpJM-91JbbgnH70n1kS3qZavsLMztGaPCbmxp0NyyTP-ost30oFaXx-a_GvjEcir4"; e_fb_vipaddr="AcRC0oCBbN6GsigCU41DjbQ3WT_VOutNcPj6_v7l4bJLeokJjIXniqP_5SLQoc_YFN960bUhswc"',
      'x-fb-connection-quality': 'GOOD; q=0.7, rtt=51, rtx=0, c=10, mss=1380, tbw=3710, tp=-1, tpl=-1, uplat=229, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-18\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-19T16:00:01.017Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-19\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1965622844,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 3987923,
        Symbol(triggerId): 3987921,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 19-Jun-26 08:59:53 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ANsLJLJ3W1wyxhCMaIiYvgp',
      'x-fb-trace-id': 'D/gJTXEiior',
      'x-fb-rev': '1041799339',
      'x-fb-debug': 'iECSlj+P2DCrowtVcjdlAo/DBXqzjMM+md3VnRKOSdp57eLFNqKPE9p4Qf8OBcyKvZ3BwqcfaFbQi5+2Vis8Cg==',
      date: 'Fri, 19 Jun 2026 15:59:53 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQrKUKAwkD2PYFuCQglgHY0dEfn2weBq4SZwe0SG_4o_e3P0l0H-3ZRz8_TOTNayDa456rBSgSMm1_JH2Ps"; e_fb_twtaskhandle="AcTWXGLb55cUe_p1OUg289xFiCnnwf8xSkI_Lu66ogW1J4yhRkiliIwfgaZ9b1r8Hm2xwp-5tyS69mdtSCUNH3VZleMiy8BEg8hxRrNqvUwJ"; e_upip="AcRhL-neYOSefKUsZrDEweeQHayxjyQJMA8aG8Y9ws3STUxMU1p63wWcoUZW9DOuB38ItjSspYeWU_Q9cbPrzSmkDPFzhS9lelM_3cCYIX4"; e_fb_zone="AcSQI04sFkNhpX7zP0MhS9AXdxqgvLz5VMtPnJ8HpANHF_ILM6UzgsVpxSn7yuso"; e_clientaddr="AcRATqi4h5BydMFfRjIkBjw0KC5z_Vbl5mgdg58KlQQwkzobEYa6A1INKA2WWh8kRsY2kJj-clWWZ2qZJIxWMshLbIHRLevauMoayZU2szFoGtw"; e_fb_vipaddr="AcRcPJJECutgSa-Hxl-g35yfp9jeLPFrEvhuWh9V6NPG7hhRiOyapoKv5frTbpCZYKjL72wVA8865S_Onfkw0VWkIESXDmytbHo", http_request_error; e_proxy="AcTCfpXffAL5f0q0iLtUScNguZGJ2pIeT1W3vvuBRvh_pwYXsEVq4BF9Sy1Dt_M8j2HHXetFqC2JR6g"; e_fb_twtaskhandle="AcRktonieNta0BxIg7xvSBLIIx40sbN9buU1bkJZSzxGAvqaTxWyZPUOu8n3EQwdCLLMlVcRe13qyzsAiM61L3IwOIJlmmsjI9k3"; e_upip="AcSaghDwl1DpxOxNRETrnuy_eXcRb3kcRitQtYDy4kwGeslbiRY0ENC9ETK-W1BokbSSwdjT2KjKY1SU4fhmEZAkDMF8kSRbwuY"; e_fb_zone="AcQgTU8LOT7THnGHRA2ys8cmOPCW1LfRlR3cYsDr6GiM4WP3y6Q2kC2TjT-6zQ"; e_clientaddr="AcTERlDzD2fs8rkYmz3zRoDfinjZYMmh-YNXeELRj_XnC1QtnxXUCFs2wlzquPjaZRrgxrGCEZCwK9C4ujo"; e_fb_vipaddr="AcR4I7RUhpcN7pkDuL7d1dG6kPDhUtKvNKPJh4Vw9PHg9fZ5rKAcP2LwVIM8dtUKSHdP1_sL7nk"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=36, rtx=0, c=10, mss=1380, tbw=3708, tp=-1, tpl=-1, uplat=257, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-19\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-19T16:00:01.620Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-19\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1115886092,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2240492,
        Symbol(triggerId): 2240490,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 19-Jun-26 08:59:53 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AU-k3olVpdUMaYU47QPjxLv',
      'x-fb-trace-id': 'DbqspeIHntG',
      'x-fb-rev': '1041799339',
      'x-fb-debug': 'jea3CNDoHUvLJ9HqIr/x4H5IYi51z8D8tci70L0DNXNZ/f/2SquFMFfgAAeznw1vwUPuOgyULBUwNmWrXx3CXA==',
      date: 'Fri, 19 Jun 2026 15:59:53 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRh58oXjUBOST81AGebyYh35tssD36G1z0deomPbpGk1LsVsNSy_wQ8JFN31Gws4Ebs7zAZJLcjaUXJJsc"; e_fb_twtaskhandle="AcS8zMnIEldRHxfc3MAXJoXcDCRc-gyrOYtWSB7UBThm6dwCCGuaDR9gEFKXznhZpE_auTe-4m1xfYc6thGGsbD7hb-wSjKUW5u6I2MNqIQdrjU"; e_upip="AcTVlYgZv5hzdx3kDHpviiLFnjP3yVkXQIGXlel8vP5lP3-ec0BccOwL2A5XGbsB-FzZRcf3g34cm1iq7HiZ8hJ1rIzGNEc13-Jxj9z5WaY"; e_fb_zone="AcQ30a2JnjREZ9VO6bHK9rWEYglAHRjiCb_41aLB4PJmiQeJxzwpfZKuDYrXm43l"; e_clientaddr="AcSW8-wnsX1cTwKrwdINCbyU_azkSt2Th2mD6Izi6GQVZq_vN6Y6MjHcMIDvBQIQ3wEotz1FPjN3DBKlZNCcGKfgrEsjZTB3E05udRK4L63r-0Migg"; e_fb_vipaddr="AcQKCGXraI_Gj1cqphrYDOaadbHsnnFODF8ktj8gBJvLQud_ZKIBxhoHSf1hrZVy8_4yBg-2OdGQkG2-F5q1u-uphhiiWL49x6M", http_request_error; e_proxy="AcRbZw8rbPSZbWQSkWPvxE0vaUSGrOGxY5AHJWvEc4s2mEBz6AGNOY8AZsc2_PwTlANqbJYL6700iGs"; e_fb_twtaskhandle="AcTfp5PVg2TTvdZBgvcRDlOfLHXKtmW3GWI9nQg0JOilb5UUJWoXFNZVyoVBl7L9wDwON6S3wtAcnFsByoWqfcNvpEZW7rRb2Iqc"; e_upip="AcR7DzlICXqwMBNv-iSuk3_3HYWDxA0HQyYE76USmnHBqfftK_NpNFBu-mHSRv7fPdwrxz0ksZAQ0dtxWB6kCWdbzZMDzaheOCA"; e_fb_zone="AcQwiBEjozkZZ-5u_DfNN60jzwLwUAzCjfnZwJiXncZDV0N0nV8sfFpy6DRmEA"; e_clientaddr="AcQ4GiCb8IWWZpo050zuGLB0kDQNU3KDuOlPAQ77NBW4hufT1-E5H3aljrxfGirDBaufFysKJYV3Vi07R3A"; e_fb_vipaddr="AcRSLcEjmNIUa1adUpm0n1sFLtbhV5TCUuyO7dNTcmHMgJvsj75cIvk6psLUL3eA0kahpZNCVDI"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=36, rtx=0, c=10, mss=1380, tbw=3708, tp=-1, tpl=-1, uplat=692, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-19\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-20T16:00:00.995Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-20\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 2052022823,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 4161150,
        Symbol(triggerId): 4161148,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 20-Jun-26 08:59:51 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A4eeOJkAR9YiZefBEn51i9B',
      'x-fb-trace-id': 'CsD+2F+ptrM',
      'x-fb-rev': '1041832074',
      'x-fb-debug': 'yDkh5p2mQAy6YiTRqCw/ZWMj2bt9UkwwLDzcnplVTdZPtBIeKCZkWNYC6b5xNhKCcthbwQiR8+uPcmCNTXWj/Q==',
      date: 'Sat, 20 Jun 2026 15:59:51 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRncSFN4ycfAFIPppS0nNcDTFXUSyycWKfn3AS-nEY0Wrizljp-mqAti7FWAXo3IZt1oXs6ihKm--fkjrdt"; e_fb_twtaskhandle="AcQwhWYZfQZR8g_9y1u9j7LE30YkGCEqthzRLZwZDcvzNC0hAFeMSGFXdmoSFqPfQhK2HlJOP-m6J04S6oYd6MyXW_STSCC0jwZ9zCh2Zh3Cnns"; e_upip="AcQA50fxdxwq7q71jLxxAfeUL9bcRYjpSpMaSv1XcZXks3Zw8D5CyR4PMgW73xk9cgswR_mnd1Wx-P1EZGat8a2PjslbAdxksf9Yi11ewVE"; e_fb_zone="AcRL6qgfi7T7BDBSdihEgQnAg_NVgKKFTQ7F6GpGdEaKtdl52QZaQ44nm1XhCQYe"; e_clientaddr="AcTK8jkJdkjirqr3kNGvIIYXg_zY42I4nYYNz0wZt-Tzp3WKfzA57QcD-q4K_dy9m3TyO1fGDwDokH3zsESha4kqlPQbMfeAVNfRQ67xqe_iyttYjQ"; e_fb_vipaddr="AcQ8q2oG2fO_JFsiHtlsMJ2suZPM110Ke3SMKEOKoVpOYFgGk4fxI4nSfwlcW11ymuj_TQDnfbPAe4Uk3tDiZ2OnULkkUy5s8VM", http_request_error; e_proxy="AcT2mzVt6Nvm10_Z6C-MpeMyKlj-eE70teYFeCiayteiqtP7Wa-7t-N_4oDj8-P9Q0ogwiaq271P7LY"; e_fb_twtaskhandle="AcQiCTtl7q_UlpSzY-8W-ILNeHO3aQnUDBKa0t08Bn-xTIcT749V7Yr3zZqGuk_qawVWhzkFeZa-ccc5I3uQOYik5P2xg6CpGpNm"; e_upip="AcRVKhE3Q7tSJg_c-E4kL22LoFDie9lWDQhoCq38mAt90grllUK3hxaOm9D9c7OP9rU8nOSYwaLEzTe18kprBSPVxoJjeXsUFr0"; e_fb_zone="AcRM6n0aHcpnuV4il5G-nPBPMT1kLegB9cnPGfiYbZo3D7kVdhQg1p7rEwcnLw"; e_clientaddr="AcTOfWdHQqPyllvuNqQ1ynXtazTW4eErO8vr5ffEJDoAwRhtOMv5sJkc9AofTXDhVt_ZFgej7dtL0FmfOI4"; e_fb_vipaddr="AcTga0AtpZwnZmA1imW4c3ctIKFfuLitqCBa0jSXVLEJ4xRjCerB5MDgC56QUitCBGGOfanNug"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=830, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-20\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-20T16:00:01.048Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-20\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1202285521,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2413511,
        Symbol(triggerId): 2413509,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 20-Jun-26 08:59:52 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'Ac77T4_SMsUi5MxGyRTxB2p',
      'x-fb-trace-id': 'CGXw5cigwNG',
      'x-fb-rev': '1041831138',
      'x-fb-debug': 'xjHybMdQ6EIt2no3KJ07EhvFuC6KdBjyC8BxCU2BeI5SB+sxswq/tKQLhysnnbs6e8gKd1q8p9dGDGDtUUQ+mw==',
      date: 'Sat, 20 Jun 2026 15:59:52 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRqanlibQc1fckwLkw1aiueCD9cS5_2BP1SYHZpImqbeXKpay4IiWl1Jv3KF5cnrA4K_dq2M4XpywfcOYns1A"; e_fb_twtaskhandle="AcQsdyuW_JJS6g_y40m0worB3wOMyzP3pWI32elqHJ20TP1xOoqU47eFuquRb_K2bKTS3EIATxWZkl4Aze_A55jVFF4UnRtkmImG7_-8dpesKkg"; e_upip="AcShfsXfwrd09tFp8E7ObAh-MG-F7EW5VdLoCArt3xcM2f4d_KDBHscd8sF_Wq4TeAi8a7HfIOa3hRny4kyYGq5zKVPSh3M7ljnmTWZ_Jl0"; e_fb_zone="AcQPjuggK5dxa0dA0DzVe6B9can_aTHYtFgVEQSh1pLlAmetILpOniGvI_d3qpHO"; e_clientaddr="AcT14YwWDBDKMnj5Nn0E1RnF_oKMNnGTORDQY8pTxJLTtPVTJ1RyGmmQnV5OwF5sBFKvcw_hN4iIrDCtNc9RFlAnOYsl4gU41IuNwHH8O8cQPsi41Q"; e_fb_vipaddr="AcRlzorDLy5NYWNaBSTsa0rocHcSq0j900aPSEFt3a1XsuC5XSpdoMjWM1YLg5_3URzh1pdXRrTA6IyGngfbvwLEBnJkYzAA2GA", http_request_error; e_proxy="AcSaL7HG68D1XBQKGk60geeXxOvxT8gt7QKNO7AVWHhnVhgVNN8_Xjkm5ZUD_Yn1wl5kexwztwoIpMY"; e_fb_twtaskhandle="AcQYUnnn8LXr1VR5lTAuwv4FogCELFqdNaYZfbWWXQ_rnAGijtbCa--AfYt-BgvvSiC_fxVn39-aRhKtX3VqNABf1Ji0vWREwAtl"; e_upip="AcS_CHUUTSIhdWh1g4V72XjKt50cdf4cN7DcptcEiabQMzwTmvEg0mNMiKfUMGCNBzJv2BNZn9VP6l0wvl2Po-6rSj2Q-VHi4y0"; e_fb_zone="AcRFQQBGuVdpaveEpqlw7PwKImNG6y5OUvtb6Du1Zz3yYmBW83QMQucB2dl2YA"; e_clientaddr="AcTaFPQsto1XElLxEx1Ehr18NDzK_3sqvAwigps2xx9Hz5wkAZ_XsW_gVHPCnGuay9cxgIw1NCxnDafJXJg"; e_fb_vipaddr="AcSJoNJmY2M1DuZl0nBwt83i22rhMYxFF-dUjCBECAhkrXA22KxYfEdMFUKRYHDV_lJ9jFB29Q"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=746, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-20\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-21T16:00:01.375Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-21\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 2138423202,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 4338420,
        Symbol(triggerId): 4338418,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 21-Jun-26 08:59:51 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AkevJWl700AQw45cfHjp7G_',
      'x-fb-trace-id': 'EXzPEbxj2i3',
      'x-fb-rev': '1041854574',
      'x-fb-debug': 'hiDpnIGEpUCnkP5WSF2Hp4rAWVEwcIF/7LYJe3JUIS9YsklvcNV0QgjIJT133Jaw+KIrwoQ1C6qtYYnm/ozy4g==',
      date: 'Sun, 21 Jun 2026 15:59:51 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSj4WBf2Pkeg150Oh7UJxMepDyIBgzMkPsqorbPAnAn9QMiWlY32A4zH9B7cbMjGP8eTwmVam08FvAbmhCa"; e_fb_twtaskhandle="AcQuVxDGATvZsxv6sJzGcU9XDSFWeSmRxQsIr84O9nUqG3urwN1c1RX0RSAqnzgYjtpXWW3cjk7OagWF6r5dwcL7Hg6cBEpENfNGBtcZrYvRAac"; e_upip="AcTThdAjLKsGZj8DuAxRKGfiDCA5V2Rsge7E-XXJwR5FJEpWvL0enl69z406O90GYeNTf3sZneoQXqcm4X65F7o8NJNcNP8YdG07UsXJPg"; e_fb_zone="AcQykWr1uG4KKZttHdufF6JPJmET4KBdTwPyUhLsOAIe3NRKL4rubCakBFNP8jyp"; e_clientaddr="AcQae8l7u-SX85LM86o-fbi3aTuCBrTPrJR4cTK5IWSSrbM5uuM0ck6c4qUsY-1XNGyswX3iVUkkrVEhh4Yj7W6h9ijSn0K7clI3VPdYP_3SsOnFWw"; e_fb_vipaddr="AcTvtCtZCuWXEjLXOCxIdRJ-ynfHdnfZftUTky6Du6QGPekGkgIKOyLneUS4KEmrfsSimRrqBf5p_DaD8jRhq0Zmver8YS36_48", http_request_error; e_proxy="AcQOqUEScTy10USjA8xgAnhwf37p_F_oxuUOt0dogyhNGtPXsMEI58R73AZdxZDbN_wNYvxP1NXez2Y"; e_fb_twtaskhandle="AcTOsRvf-Uuqj1hK6H2vODyaaZ3O2FQYi-pz7VxCxg7oDPZz-quvPKpeadXDehLRQkshvJPNpzZNtinlX5_QuZ2RZVVQzjRVVB1i"; e_upip="AcQiBYYlRulEGteaBiwYFGKCBRmDGyxFbfBfP8qd5xPWOcuiX9Shd_QPe_bbnNrYoZGz9TYjGeqMwsLw8j_ZEJBxqk8mxxM7PJw"; e_fb_zone="AcRl-IxlOFqtiwtGoOyfJUW2L6zXNUdLaIoNGEW3g1MndY97_9Kc5-wT2_Uh-w"; e_clientaddr="AcSHdP2CrLauuZElD0GDury7aLDNut59WvgLlFsO92TZzMkDM4TyNvRHpcDfheHxNT6wqJLis5f7oaumGnQ"; e_fb_vipaddr="AcRaPsplEYtNplU4k71MaPmJqAzoq7l506khRo8c5q722NjdGvgO1-C6RqMLP8jaAUAZAcVRVw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=318, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-21\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-21T16:00:02.037Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-21\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1288686509,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2586538,
        Symbol(triggerId): 2586536,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 21-Jun-26 08:59:51 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AawtjU4n09ddF5Q00Yp8b96',
      'x-fb-trace-id': 'AhbPb2Ni3ye',
      'x-fb-rev': '1041854574',
      'x-fb-debug': 'pqChssahOm0eAFsw4IdrKbhsSnS1jmPE/DbvFmtq8HrIDwG+EzLy0CU6OjpU6BaN2kI1n2VBeeML7cGWAef0hA==',
      date: 'Sun, 21 Jun 2026 15:59:51 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSrOti2UJxcZa43JtO_7ek8WgZsHmpTryaQHYwbMJ0yjBA1zuCYSkMmWu-REToFvd3wT6YmLk89hNoHrNo8"; e_fb_twtaskhandle="AcQPB9O3BcKkrprHtw1JXPZ4_AAjNCu2hOka2nCBrgX1JKm-McBGVTFk87PfDIx6U7AUJo-VgtX6Ouvr8-aS057WMLVzyLrVpgX54Y8ViJ3kzg"; e_upip="AcSKIjsAZOnkV1XGDh0QNSXpFhEWfaeaXjkfIAYaGFPQnbZlyZpvvDcfbmhtlTT1rsk-ofSNj61Da9Jmuf4uZMG4pMAaV9AXnz4Yftbzig"; e_fb_zone="AcSkdiv7M-3U-mPmkwuh7JpIXqhW9fb8wSGbK6d5rYgnPeNdw79sSZhT3kBl_pop"; e_clientaddr="AcQZA4cFT_tk-2SX5hU13mr0oaHI0FnlrW7E4uO2dh_VaoMc2BiXLfAWiqxvVshakoGCTWEg_-XCdRtW_qoKC_kWK7yuN4pVFqrqoPNUU7EMxX2A-w"; e_fb_vipaddr="AcRWLdN0eijIgby4Uw1gO7vcEbeUNKWud_-pHHYTPQR61yWYNpdntHaKewxByC-C7YXUWWfKLXj4V5wtDR5ELKz0o8CLJN88-V0", http_request_error; e_proxy="AcQqCDmQX0EdKZAlPlQV2o310ZcBXsoli-vaZUHmktlocT2PKBYCnioAvLEZuZejilZqBeXGetID1vc"; e_fb_twtaskhandle="AcR_OVhD5CflY0ZCkpDgA-Qio94jFXGBjfTKkbGkPvZ4cF82h7ZVB5IUCqf-rIs6sdvQTvaVmsvZVmg0A1ofFsZgLPYCsJoV1n2X"; e_upip="AcQ1uuxIfagdb5Brx6Vnqr2lsWVEvbts_6hkTBk7E02LCyzhQgLZojbLjbm26ptTgpRCynKdiZI76NEiTqxYNFhkFewRW7-HYRA"; e_fb_zone="AcQDxEefYQjL1-9CQVRcLStu6PBB0YTFAr3RF1CuVBNRbpxv9evShHEuazaqqg"; e_clientaddr="AcTtCzzS72rcPZvqi067mrRaiUVWVHdjaGRG-9tl5uTFWLgTE_YbAqqBAsIp1ldVSJ2szB-W-wsI_RwSbjw"; e_fb_vipaddr="AcQ9rjPfziwrp-Tp56gQxnzAR8jjeMM3dnTDzIufJcY0IcQn82Eyz5Y7vxsQG6g8ETrLB9SqmQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=828, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-21\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-22T16:00:01.355Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-22\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 2224823183,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 4512811,
        Symbol(triggerId): 4512809,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 22-Jun-26 08:59:49 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ArJWEuh2sCzPNA8R2nAUDb8',
      'x-fb-trace-id': 'BlymXitk1YA',
      'x-fb-rev': '1041875635',
      'x-fb-debug': 'qOmNxPUNZ1D2ORPVIWs+qt3C3w8rShkzRbWYS3LwRdIVhaTFxJN7dbak1w4JDjSDke6Ln5oeSGMFyT6uI47V3g==',
      date: 'Mon, 22 Jun 2026 15:59:49 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRwWUbgyK7o7MjPjULfhaIzdrUXMMvsOGZMxOu4p3BTJ7s-Ew5LXclk-TZA3wzlcOVv88L82XrHMT41YcM"; e_fb_twtaskhandle="AcS1D5LKy1INDUHcyEyUvSM8mlrTpYiFbspsLjovGEG-Lj6XWdq09hnIOtxm5dDkN4gBal8AC1QzPVRA_RnvPz_KSS4veZExJao8p0cHgywwzr8"; e_upip="AcSEQz3CK9MCHIhBGXVHoKemswGJ5cWJ81homSQIge--Hndm2RruoJH1pQ9rp2hLOEiXNByxBxtRvFuTwicyWx1Hf0UNLouF_QymJkkD6w"; e_fb_zone="AcRfhHqupR0xncz7F8djrHN2BlqEQNL29sub5P3MYs-ZzgDW9cgoWMkoPW7Hci_2"; e_clientaddr="AcR18Tx2PEb9hG-tHwv0SFE5cb7ql6GHiyKPBvj1EAW0zBXSYXzKSewXov6dvZPv32UK5kItDwE7QoNKzVx6761jO_WpoVxCMfe9_oPcwG6WIVW08w"; e_fb_vipaddr="AcS143TV4fGyhNPPNJmMCT2MfaWBkjq0DPA4KMKbz-rMalkrDJS3ifhKq-gF2j5hjgq3dxVVT7udFUJD2gTCUq9toqntKOcBi-E", http_request_error; e_proxy="AcTtI3MChOKhfPrAkne7dpv2AZalvEMhUlWl_hvvIgICX6QCs88ucX_pj_PCcyVs6CP4RBnsXn260lg"; e_fb_twtaskhandle="AcR7fGAW0-nOooVRFycH3o9XnzfC7i3jBwwDz-hhkbQTFBNJXeQ-CDUOv7lF15lxLdJ89JzpNm7iCRi1Qt0u7AhsYtwS6fN1dpMT"; e_upip="AcRW2wsyzrLqTStg4KgDqevG3fzaKOmVb-PuJnyoM6apUZXFxBxaSSBPSU3dwENvsyw_7QCRuwHBsPATF2OUdDwbhzYZ-x-T6I8"; e_fb_zone="AcTsEpMPqvHhWK2D0Cvo7CDEZSDGnWywGA0zC48nndhM_ff8eqKKUNQPzvj2SQ"; e_clientaddr="AcRYSsya5Ezvl41msWN_LUGbr9T-XesAkyAMM3hxRhDSxxB7SCnhwaSDyYx68VvhnuRA-KN3Dhjjzsobbqc"; e_fb_vipaddr="AcQacPRrS1mRx_2dVKpmFZotV1OlWs1iBgGnVv9bKJzRHAET7O_tXSYzMwg6BLe4fxG-laP0sQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=805, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-22\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-22T16:00:01.378Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-22\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1375085850,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2759542,
        Symbol(triggerId): 2759540,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 22-Jun-26 08:59:49 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AgsIyogftnlArRwoG-4_g55',
      'x-fb-trace-id': 'ERmo71mO3IK',
      'x-fb-rev': '1041875635',
      'x-fb-debug': 'PlxucbpgpUItZfZTOANPPUAGh+ZKUOpqgl3i20W2iWf6EVuzn28ESpBrPf7kpAEO5O5/HHv8BPwEsjLz30cLjQ==',
      date: 'Mon, 22 Jun 2026 15:59:49 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTqgeDiECwe2ME4VFQNZDuyN94_va7kMEegZKwh2_46DX5HaEsRsOb_C-a-zH1FT90puPvu5PjQd1DGN6Hk"; e_fb_twtaskhandle="AcTXrtzkd1swlw_rLx8sqKMt97P58ngNtBU4rER-npNfM1oNHGLAnjpNiFx25TZWiOMx8cN2ueXmUROuX_tWK1O6n7IXj6xczpORuHXoNHnxXA"; e_upip="AcRMAvBDcrLAzvm0S8QAyk6to4uUUnTeAq51Za5aPrEWmkwvoHr5JneelEePe1NWMt6IkuLPMjNrdPnHqdIlKefj-6Trv5G_UnW-sK-CYCM"; e_fb_zone="AcTxKUAeU9lpGLCVfx8CYb_D5ChaOJAauim83XlaA0doQj3l5BCM8evrCW8VDQeQ"; e_clientaddr="AcQpIQ40NQ2wvk80trBeAzcqvByS6O9E_PCMA_cnmo7HPOQ6s_9fSxBYLmzRQzBEfHjNhLrRhHn3lCWAMGmERqY6muAbAgT_II8p6FvH1c69grq5Qw"; e_fb_vipaddr="AcQI_NG_v7Pr2oW9-7aPRjdqMuCg2Qcpyx1HwBG5S3vTD44pFuyz8kU_ca-rnCY3N4xQvDxIcHhz6taBvhaoUJ8EGVhq8MR-aeI", http_request_error; e_proxy="AcSblb_SlToR_6K4PUO_Kt0F2sBblwU42Y5XWYoYSbFR2W5mlxsheQ8BSdhSGsLZwqp9BU8xKhPaEUg"; e_fb_twtaskhandle="AcSpUViGJGWiGB0_nuqEdzTKpS7f_hQ8O6-xhzlDZRDqsFu-EuwYxfVb8oaIRbtC_hoqox44XaJ0Tyqc4t4Ax_BhPFNelade07TL"; e_upip="AcR683WXNR7XTP_h3nDh-KcQavDt4q3yWYf8M1ECvwCJlHMW1j_OW-PRQ4O6U3_dqfGqe9doYLage7RPWaLUU5wmRtc01jU9oL4"; e_fb_zone="AcSJ_c6TMebn7CGiUiUmAc58lYGQnTgQ5EWjbpGaDDw8329nKj2kIHiNaN06bA"; e_clientaddr="AcQoG2qJgiZvksz7q08FuAhRwGtXmNqY1HXavXR96ODuTwBiKykzh8osykcCyAz-DQzGjq7lh6bosqpTu34"; e_fb_vipaddr="AcSBMK7jje735ZSNL-E0XsSIZAWPnHZ70nwd-74VX33XnmfVkH9fmOKAzg1prOIjavCrYn9JIw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=773, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-22\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-23T16:00:01.253Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-23\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 2311223080,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 4686040,
        Symbol(triggerId): 4686038,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 23-Jun-26 08:59:48 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AduQIfkVVmVJvOCcMLf7Aqi',
      'x-fb-trace-id': 'FaarVbQA03U',
      'x-fb-rev': '1041965324',
      'x-fb-debug': '/6VGBD78NldYNIFgtaRfD4bCJI7dYho5vc0UGKTAl/EF/WHHXi2JC5HCdvPPBX5jJEL0vjcAEtqcbKpYQBsojQ==',
      date: 'Tue, 23 Jun 2026 15:59:48 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSGHU6cSg3ANBGm3pVke8BjawYqpLaMtSJJpNzm2G-IQMt60cN71EXy-wRAf8qP2zqO3PafffsiRzbJRzY"; e_fb_twtaskhandle="AcRJDiY7WuaUn8XnscmRdcnLRFoOeDiGHlV14QoT_ruS2KpFACa8mAvfCzIhMzmU1RZz885fILd7eulZ3NRWxx8qyQpkHOf_Zj0rdalp_AQDkSg"; e_upip="AcSAbZLDiVlhyQQwSK2uu9gbsHZ5GXlWbcX5H4NS4f_-ovg6g9FntT8qPdLxwswkIZSqY9bOq4Y1Lx_cZBB_Ml-2Mf1n2e2-WeiZx81E3uw"; e_fb_zone="AcQVzdqFKP26D81iTu4ETpKC_iEdyh6129vLelFm2hsB-8J_dTOa6kvQ2kdERm4W"; e_clientaddr="AcSBuYPyjSm4FHBSKkmvdFOPCzDzrY53qmrO0Calh-LdlUBsJgEi-YkY3RTyuQHrP71EydNsenyHzQyo1YxdWL_dALcO7cbQJsXpqHqMGgfz5fSZ"; e_fb_vipaddr="AcRrR5dxqbk3kOTGYZ6bCCIoajPJ3ybBgncsL2QmOp1G1EtCAThKE6YKsmm8gb_jLXXobKVElrdXjRfET9lVUHjxGk4vcOWaHno", http_request_error; e_proxy="AcROcd2XrmMKjyHuoZb6DkbSVKX0L8BqgEuxEDfqs8bKpDyTEvnV2NP-rQR6amfHU4mecTa9mtk8n9Y"; e_fb_twtaskhandle="AcT2ma35hdSRBNM5oiFw47uKkDDDOHgqEcsDEFG3e1232ymlXwzZueExr7d_e20irMZAMCt7aK8cTLBeoPMbnqBDTMajscPa_cU"; e_upip="AcQ-Ly1qSiyi5rHCkltN_GA_m_llpMseNOnqxyEuKJ-91ead6Sq0Jt1ER5o5W9ioULp3CRkCQ7Ek5s7prj4SLFWBP2SatGmaeUk"; e_fb_zone="AcTyHMY1jTlpZFd4BPC-aedjs0HBRP3faI8Uh1rgG9KGzhA_5qh2ZRSCy8wPRw"; e_clientaddr="AcQzTBRP-BdYij92Nm_qptVEgxAVYZx_pj8Z7tt4_FZfGjMkha9ptSiEZoCHn_tljHaC3mAW8pcrxP0bgL8"; e_fb_vipaddr="AcQKbIdjNqi_l2maRqTkOPNthQ2gh3U5tJXVYnj81iioN0HdT0XtXXLNyFbRtJduY1G8WFpqmg"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=14, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=808, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-23\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-23T16:00:01.257Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-23\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1461485730,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2932546,
        Symbol(triggerId): 2932544,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 23-Jun-26 08:59:48 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ADC6GSwD3vR8uK6Yk-XLU4L',
      'x-fb-trace-id': 'DHPKW0/wHkB',
      'x-fb-rev': '1041965324',
      'x-fb-debug': 'rOE8hQmOhLxqhmUc9fWsBINIQz54JlCCeRmobEOpeYxcMTk9EC16xKxf23efeAbmLAXZgv/dq+y1ctsuVgJVhA==',
      date: 'Tue, 23 Jun 2026 15:59:48 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQiyQRtLyHASsVCxTrD3rCQDtFOWmTZbIP13Q3MJBIE1gYFB-k6ZKO6RyuuzUEIy7oLueSldlLJkDwSsdQS"; e_fb_twtaskhandle="AcSngbI4AVtiis_QznKhnS9rKUUNUbOK5P0n3BnlyIRAi9Kx9SVB0VNI25wMIdLB6VYDL7dNmOKmNTzaRwfZSooP9o3zWUjqBlj94AE4hg3YntQ"; e_upip="AcTVRcdlTaFvX3c8XsM-PQL2cLP4jEY8tiYG9GkkPgjwtHQmN6Ul0fotkn94DC0yR6fT0GY0fiQZ07Pdw5CwQqZ6Vy7R2XdD-UjIH7C2wLw"; e_fb_zone="AcS3clWqsEMvSyTELY8r5deDsLnYb_4WzLHZSe5-65Xip5lRV-VSZkhBDhFtjC6Q"; e_clientaddr="AcS0A6HTjFSdTzj2MoElk60jyMmB7I0uOECUJaM8wixx92UCK2D9GCYafuTBPcStN55FtbAv2qggw98GOdmVjIPZX2nW0KavMjF1dK4UJ-41p1po"; e_fb_vipaddr="AcRoPzadLfyvSOEbtdN8W4HILDbq8cCaJPlDYXNnbU3gDQzDlvEgYoK6YFFlBL7Y8FJBvFry6b8Y999hYW78DHKhNKHGyNRSQlc", http_request_error; e_proxy="AcQh-gaaUXbwZDX-IKgyjA9RdrES86AvKzYkA1eIUt5PnngcM0rUXD_9c_80qanQNEbwm5TwjSIww6Y"; e_fb_twtaskhandle="AcScTP9wad8Un_cIDx1dg-12rFPRHmyIWfEy0q-zZAIPf4-ijHtX_zyYIwNcqslaPZe-2N2Y_1Cx1sPSIB41fnqeqAHoqSbO9h7C"; e_upip="AcRLJ6QoHUvQCsbPdmffwqcYqQ19Q3NvPErs-zKcibVDxqqJsT_yiq24EQdEOt_am34aXQHWb4um609yBZBE6G_9viw3vpE2GmQ"; e_fb_zone="AcRqnVFlcEK9JkOydb8g5CdBK9sFu9yM9J1yZod3Ce_ByCqQf66JBiOJgXk3GA"; e_clientaddr="AcRDwgPUTzoHQB3LDzGoBN2LYRM4kxSLNye1JRwb15KcGO8l5izU9QjBMtlfDzC8jD9PAeqwzhv8L-yOUeU"; e_fb_vipaddr="AcRnDS9De4O2KAmaThaOB7UB6vToMpQkZEb42OiLRHywhguTcXRDqRlqeg2FBH2NPYMwcVj8og"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=13, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=747, ullat=2',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-23\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-24T16:00:01.210Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-24\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1547885682,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 3105550,
        Symbol(triggerId): 3105548,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 24-Jun-26 08:59:47 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AXF3y2ktG_I3pv5HMl-MAdV',
      'x-fb-trace-id': 'D/C0nX4FgvC',
      'x-fb-rev': '1042043136',
      'x-fb-debug': 'V7kNaK7yJprLHm0HSvePXCgQ19pbBGxtECouUNzuFvH17xq7Vi389ZOF0KzT1NXQaHiuWHZc77nVHk9xolHuSQ==',
      date: 'Wed, 24 Jun 2026 15:59:47 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSfA8dViA80goXkxZhZu3KHO0SOaOrPDpCglk1LqFJ4zGja6cath749rBtcEDUlHNpp6ziAMVxRIXavtea5"; e_fb_twtaskhandle="AcRqm0Pqd2gbqvXzSxXlv-lpfZAM6H4xuYWZA5k5xK39a1-YPBZD66Nn0fgTQ3F2TW9NRAGQm7bBIJKxgKHzisoTi7lWuxv97ng896AKa1yW3PI"; e_upip="AcTWamX1SpML8LCfDqqGCLv1fUNKwu7cDsGu38j5dwFX-Upu49ab1c88qX1s3Kqb0nLaGtW1Ho3jTL2gJWPf72DzvyyKQYY25JYDPM4lZb8"; e_fb_zone="AcTgpFky6VaC2--SLdeDSnHj2vYN7LdgMVFazWOMaRv3Kb6TPQkDapZ9HDYgExHq"; e_clientaddr="AcTPxwathUBbeRfhZlw89cWY3g4jml-FqRGk7o8T5bdNKkmwsl-LBeDBh2PV5o9tK-16iwoSCznAfxqWaNcIaRxBDgRBVMCeekjE-_ZI4MFcacAKEw"; e_fb_vipaddr="AcSlvYobjf3aN7g_sDzSujUHEXn_sGzDZIyKNVfEUFpIgTF9VRcoiwqYHpRQtuOACtsuL8jQLjT-ha9n5BM8UJSZ64RJwxtKuSA", http_request_error; e_proxy="AcSMV3pkn2KUvta2ucNqYLe8sn41t6ZJenC_Z9TWDM-X-V7pt67pVFdm25_JcGUcxZQaj_vq_dYpTtw"; e_fb_twtaskhandle="AcR8xnkAIgSXNfJX4KzNSNUHhrbU8DqnyM65L6jsOu1Vz2GkCDOJwDdR5dcZhF63frelOQA249fQIkVSTqS49-un48Q9hAxTOAs6"; e_upip="AcQ4k5zwmNTlnf4ZCKKyll-iKsR6kzVgJ3cSCsfw9nHJ1DNob2PAhpDXOZ-vU9GcuDyf142jaql1cF4gNOjjlGzCwf8BCLS5N9U"; e_fb_zone="AcQQbqO2eTFzDZ8hyQZ-0PUXWtji4SoNTVVzf1sW--lBJOR734fO_RzHiGcPaQ"; e_clientaddr="AcRZBcay6Y20BtVSYy79OUVN6VoQva5JswueeQLy9fLX0EPNhaq_K8ksUqzTistjp7RPcKX8M9xeuRfjObQ"; e_fb_vipaddr="AcQlsaj1UzTyHBLY3NRgF3G2YxTQrQk-EEjEJfKyCp7-3VScgWgh_BthoyE7MF5V7WR4mzAGOQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=13, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=834, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-24\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-24T16:00:01.222Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-24\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 2397623050,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 4863031,
        Symbol(triggerId): 4863029,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 24-Jun-26 08:59:47 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ABIdqgmq94xOi-thut5TLMN',
      'x-fb-trace-id': 'BskmCi3mS6J',
      'x-fb-rev': '1042043136',
      'x-fb-debug': 'hd4FCAJxhbWALx5QqrPxEBICDiENwIWUu88W+28nsAAPNEYfG5pxLvy5jyTZGk/7BaKllu5Y6SRbS3JIi54d6A==',
      date: 'Wed, 24 Jun 2026 15:59:47 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQmSu8LmxAtzOr5BQfk5XYD8Y2zcFAoMGu8JCH1SpTUrM8yQqMyStIP8kLER42DZkMByP4uOkaThqxDkRpW"; e_fb_twtaskhandle="AcQPcLVP8r8LO8oDmsW6c7QgJs1flaekeiFXVrA1_ulDpMXeZygGghkhTrCZNJCyBnQxuvL9czOTvOiIPtaP-v-C-oHPI5ovbilcu6Ewlp_8njQ"; e_upip="AcQoB-oE9s3tDRoIulj79kEAb4OQJ0iDuo9IISU6cDyWFRdbBD88mGCUN_cpHG4JUZM5nzSkGvdSDP4IlsHio7rpRmfNeR_iy8cey2sEdhM"; e_fb_zone="AcSNlpPAft43enqluD_unjKWwWiq9dW5IGj0AfovAlh8t4j3dVn9zQSDhUPMLabM"; e_clientaddr="AcQzmstU9Wp2A6rVeR1egHrWCtIVEjxX-kKi3KJ12dxdWo51nHNDLPi0McUAyi4C_54E0N4QiXDPphdz823Rbkh-xjKPqmLueyyzqGBo3tOyCLcacw"; e_fb_vipaddr="AcRoEjcOe0VsK9ay5G2ELiLSmICqAdHxLTz1BQiTNGQAj_XKXuPSAjkTQwA7XVqjkALrJx_oSEDADfIyfPwhVHn8zwDH4CIRW8g", http_request_error; e_proxy="AcRcp5QFcJpewQ-q1LHD26M8GlPrSZEzzTkNNFfslpWmzYXP0uLxKvAwuV0A2qcuarjgHXmt6zf7oJc"; e_fb_twtaskhandle="AcRsH7LnPeCLbZkI6O3VKIAL7KApaX6cmQkmS0J-dinnW5kT5DgeRCOEjoA-mqsWO3gmU-txoo8UXGka1WMkJnrLhmm_qxCGq7I"; e_upip="AcRbbwXIPEubbKQyhuXrrC4NDKiQcpyaEfkehzkBil7ew6DKVWSBSdL-bYHro2ByOSXi3R4Outwcym7OVWE1fEpwtCnJO5ht1Hc"; e_fb_zone="AcTDEVGYWVQaOtHGif1iC_AeiYcMEG_gRF8qLTJR2cMrPROfWdbCT2M3i8sEAw"; e_clientaddr="AcSUh7JroKO5MhPbT6LEkTJWz7Sbec5yhb7Wg1j9nSPsbU3KQKI6icBfEsAWbuS4sQHHTP953aTn4EIJDiw"; e_fb_vipaddr="AcR8DSULcBZJjL2nzlp4hHWUpOK4qXvx9GDdtLyavbJc345Os8qabXZsLdBAE6nGONBuM3UBxQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=916, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-24\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-25T16:00:01.325Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-25\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 2484023153,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 5036234,
        Symbol(triggerId): 5036232,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 25-Jun-26 08:59:46 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AZBvGZ20dSOudj8uzuG6R_A',
      'x-fb-trace-id': 'DfhSbLNmRjc',
      'x-fb-rev': '1042119269',
      'x-fb-debug': 'BSt60PRgbubR1CKis+c9G0v5csPOQI6rHEt8Wm6Moj2QDBQDe0GKpvIf36AAN9zzvyhZJVrTRFh7nVbY30yoNA==',
      date: 'Thu, 25 Jun 2026 15:59:46 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTQh8M2hhskduN-hGPLGtx9AjGhFWJ0gEJzuv--WRHKXqOWR5T3TlMNvneUPjud50RdhlJrxMRA6-ZvQ3PD"; e_fb_twtaskhandle="AcTMox4Wno9RIUzCSSxP5ACv0ylYg9nBWveS5OYMIf8VWLg-eSBRpi5My7ztKKjF_CPtBsk31zhGheTS9uzUhh2gHEZB8i35gTPREcOy_qbdm2g"; e_upip="AcQmrniZac-4oKjn6zAcPgGF72WUEFSw-EAkop0ta_hH1DsWIifNn5g8ZTV5l2y58c34fImvaJsz5ceFtKzQyI48k_4FftDdEa367B89rsQ"; e_fb_zone="AcT2DXY2QL7uueqJAZ7Gd2c3Gd3J-tDwR9oSM18yLFzLE82bLoBrza1M2wAZWRs9"; e_clientaddr="AcQz33ONS72RfkHmSwhb9XSl-pzeVUROBgqFQQW8_li_JQY5jnrIus6f634T5peysSxOe7cDoKLg7-J_nC6g5_bmANfXJfsDg5y1lyHk4Yq6NKGsvA"; e_fb_vipaddr="AcRXXyb_5-slCwdIST2CZY49nPU37XHpM3YAS-xJwAcD6cmWUyFDcWYci9UKAIRgoQqXEMtqIBCXHKXk6aZGsdroeXj4PBs_BKI", http_request_error; e_proxy="AcT-O-nQ2SJ7BjRxmoyQm2KBekARZ0PvzV9jhTG8IEGwZrAl5KOy3hYMfiwO8q0MmHNMkZf9kQ2T3-c"; e_fb_twtaskhandle="AcT9GhzVoTDB9W5zXJoNqVzl35Wa50ezjh_R2HxKM6OIUlMI2W6mQLRbBkUariWfQyQLSEhUlfhyxTGbWtnBB-I9K21pDoTWUOZg"; e_upip="AcSJ8JbZIacbaIf9iycYApqah6JnmOtE12BHzjA7ADPjTMrSluW8t5POV4pT3BI0T-ywXCwq51Bu-RCxoDPdYhFkLUFz3BXQgT4"; e_fb_zone="AcQrwrjNtp-FygKDfH7-2BT-Cff6Wen05UFH5sFXLk7V1AbGwZUSlKjNiCV-bA"; e_clientaddr="AcRrcPaLwdd1WMcUBm3FtK3PcG6TxPXB3xEFX8ZHLZ3JmtKpq1yRXoLa4mYsG1sFxLrCmAt38jNpltyY8cA"; e_fb_vipaddr="AcSqzWeHaEBcvHWQCsUOZUb31kZSfFXVX0G7D-EwC6fDEqWnjZTOBEYT8fWN31NFDkGvnEf7kg"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=813, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-25\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-25T16:00:01.342Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-25\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1634285815,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 3278556,
        Symbol(triggerId): 3278554,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 25-Jun-26 08:59:46 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ASQhE5OixCN75c8XkUpZe9y',
      'x-fb-trace-id': 'HLZ/IB4RIjr',
      'x-fb-rev': '1042119269',
      'x-fb-debug': 'Q8pGzLFwmUcA/rNwj4T1Dj8Cj298WjOW5jYV02xAQrWwCeZCb1MIztI+gWVLkI5q9aHNCK6o8CHD83lcmYd31A==',
      date: 'Thu, 25 Jun 2026 15:59:46 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRkEgNLWb-TtotLtvEFG3inr5e4NFhhgc_VBzVOXtwUCIVS21MUOr7E5zGFF5FYYffT1RjLrxfXyntLev0R"; e_fb_twtaskhandle="AcQQTc6u8bOG9p01us-A6zM4vslOdqbHVwoW9RdU-DRzHrBerGhXhmLxvyC28hYeFeddlHbp5CpNN5xTVG5JJJybfFqw-ZHLECJcMZDxOJpCufY"; e_upip="AcTRNr2KOWlNOBc657JkwiqBnTunc3HRQzO2RZwWUAr470L-66Mg0iIUTuyDC_BtfoFKgmpeZmiGaBHHIBhZ-c5JGJHnGLYrzvuFIIuM7bI"; e_fb_zone="AcQQzmjSOF9LPh9YV8P5JsNe0_bvOCKkmLpT0JLCbXbsUo2BxpR36WpbKDtNroHP"; e_clientaddr="AcRTFvgx5O_81-OBGB2s9qnoTWwhX8jRJuOs1yfeK413djY-GlRs76a5BK-VvCWAp1JNbdjzTO9048XxfHwudtWJRgfO0ozEdTeJL9e8NZ4cc2miNw"; e_fb_vipaddr="AcTPOmSMzCSjhEypWwUOxOVgkgfDrp-gMEtbQdDfPE7Xb0itv67dgH0mpcBVEXnaF8PlbBZBtyc72mE5j_TIqM3fGMBIZ1lWzew", http_request_error; e_proxy="AcTGWHZGFAblwwbLllurm44yPv-FJFASkF6e-Ridoz_rc4GdVOxC256X-WqS9a1uXdofw-qLQrb_Zf4"; e_fb_twtaskhandle="AcSBPTQb-y1_J0Fm4jz-eppYu169QC01oF0Hv2HgZCtZ2-CZycQeiqejrUXWtpfMF9MFWMd5SQLTi-TYJXnfO3R78dE7oRl92nIz"; e_upip="AcRGi5stUl3zrX9NQiGO-u2-7UlXfvM3d7Kyox1YIFvwkW1JKXh87O_u95mXQ64Yl0N6yoOw4PBhX5sii78uGF0fNgiAZDYPcms"; e_fb_zone="AcTcqP0bJhmYom_sSGaadLcZB8uaTA4rNR7O5u59BPQA8WY182hvzHm6-a0a3w"; e_clientaddr="AcTyVV0wNzfaCttNsLa1zQAZiE6CWPNKUc6jSI80riCY6bEmq6wbed89DAZ8oSuIhIH9k6gfX1cgVHAb-Rc"; e_fb_vipaddr="AcRXmOms92_5RTg9rJcFH3uL7LOTikoEpC1Mgg8gJ5G3pis8Qtl9VSPcn1EbvsNqF0ulkuZvbA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=13, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=763, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-25\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-26T16:00:00.865Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-26\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 2570422692,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 5214934,
        Symbol(triggerId): 5214932,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 26-Jun-26 08:59:44 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ARBRvMihFuLKZ4vSkvo8SXt',
      'x-fb-trace-id': 'Axn4Xo1w9+L',
      'x-fb-rev': '1042196568',
      'x-fb-debug': 'KzaC/YM95YHAOh8kWcOPnC4rP2bg3qHXMcPym6jpDkOj82upYCh61eYitmNhyja/Vk/AOp3HAKOOm28+RKplAw==',
      date: 'Fri, 26 Jun 2026 15:59:44 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQ0SWi5cZQMzA7yftqdurGU5xr1jsA1N_mwfDBHnuHEI7kYrCBA-ZSQ5sHJlOypIz_33HHOaXlxgDnpPsLL"; e_fb_twtaskhandle="AcR9K25Fn_2D4rdjrTsSv6fEFRZC4wEDy_yZmVb5CkmRSEIv3dAPejN0BtqCRCUgMVSU6Jf-fPBzmr2B2CMja0qbkGpC2yDNmMTC_d-geuD5Uqk"; e_upip="AcTvgoqwd5P7zAsYxm9HFbdgKbUGYdh4FzO3uAm-zH4fAYu1GEQYu8lTdEM6jfg2O6h19jz4Pv_dyYIY1-77Dv0CLHZOPOP0GZELYREa3pc"; e_fb_zone="AcQAqUF5amu3P4xphOkyODlqnoz96hWGtMsw4tkjmnf-LGMIuCrpjBokhwulCrhA"; e_clientaddr="AcQd2xCbR0X1cDiwHtM8gBoLpFtcSam-24K86xGV6ws1H2h3WsHXUjMxK9x6e9H8031rQT8IrZbxFziqDAFPmaSa31EPm1hDKORIk3s38REwQFrjJg"; e_fb_vipaddr="AcTmPZj4DlRrpBZd5R5FR4iIboOx70_sHeyl112rfJcecEzR0_fCSmpnfWjtzpJoTgzEW3dRw6ktzwZxGpBuj1eenDGQfsqxnv8", http_request_error; e_proxy="AcS46K5Ey42u7mpCRWXsu15czebYRz0qn-ymdzBZ0LeRI13cRaPY0kKdZ2OfeYchnLM7bLWZ77uu2HM"; e_fb_twtaskhandle="AcQzn6gQU3-LbqR6vb72TQqBxw1lcyF80l1hHpIvEHLItf8oXapHsI5kzSg0PC38fWa-Ed5S5m64wOG2bA3Lc6X2mLFfOv2t97I"; e_upip="AcS8IlbXc3dxRG7TxKAv6wCMzSvp0LNAEV_UB16_yIbpkPR1-Uao3qB3jvpV5w0wpLir2EIUVwodr6CIM_IMOLGgATWff6fbDaU"; e_fb_zone="AcT36LQDZLnidH6tU2NRr1uT3YAC6Ph5z1XKyvpyTCS8VBul-xo-Mct9PT_FgA"; e_clientaddr="AcQ6pyUZomx_cVk5PKcwfXjb1iA0dEODroI89bd3XqilPXfuc_T7AlIlaJ1Hm4iQM7nkMjkDDqEyhUHMtJ4"; e_fb_vipaddr="AcTtcRKav9HqgfSlZcoODJvGsFP5HMQQl82SAenOkP0eRNvU6ECBmTreOWkmPUIWbXQ3E_etKA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=15, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=758, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-26\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-26T16:00:00.967Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-26\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1720685440,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 3451628,
        Symbol(triggerId): 3451626,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 26-Jun-26 08:59:44 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A_USa42QQEk1YkNLgO21ezG',
      'x-fb-trace-id': 'CHXNmZazVBM',
      'x-fb-rev': '1042196568',
      'x-fb-debug': 'uJgRCiCOrCiCf1VpT1qzmEocnpy8vHHNg51DReIgZ2tBBf/8vy0elWMc2DCwHfdMLNkzsKMjJpW4T+NqlmQAdg==',
      date: 'Fri, 26 Jun 2026 15:59:44 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQCKLuxlVVhpHpF9MTUDssQJoPXrLVuxQGb1zgmiqgwaS5s3htt8pwumyQZKtjmj1P9QLkw_SPc81TuSZFd"; e_fb_twtaskhandle="AcT97Xx3udbGH3GKa8kNNQuu6-F1Kkdxzkkd7Hd6DG3l3D5EWNsBXU44JlitZrAoJvkOR9G9haWGiuwXQyKd9jf8jDvpW5Ih0ZDVNVi2jMS3PGw"; e_upip="AcT5GpekCWCmUrWccnDEdwOMdUaWAigNx3QJrtfNbDaQZYYixHCz9kWYElsZiJcStz-PKc93US6uTryjl1QabTrSXNCx5jYuaF9xZ60WTTs"; e_fb_zone="AcS9ndfA5SBzDPGt-Un7HE9JiJVb79pztUaMDl3jit6GmQZk_FY1xkwroVuilc1B"; e_clientaddr="AcTi7lCnVkBvZXtQI4jbrQrz28d9bT8-nWds8Ui2kmZopiQkfRmP2Sgd0p1tAJOecYSJAv7nLHUsQBJ4umNZxpLBhyyN9iPAzz0OEagicYo3NbAW2A"; e_fb_vipaddr="AcTesnMmiNp0-uW4P48TnHgDFzP6WZVV6sq911fplMTM2Ut-l_cq6v4MyBITy_SQdeYCFkgsG1dLRmICA3LDzOPC6qz6tExrCFo", http_request_error; e_proxy="AcTkNxHKgPWHCEozp3pySGIVLl-YHpfCqu5ilV_UZ9ls7bcMEoMCKQtqZuDHRbs-muU8hSEIF4QzPUc"; e_fb_twtaskhandle="AcTJ9WfLnq2gj8n352dh5pUepwNeHpmfG56xX3LfF3vPi7u5_FHKomjulIUhCgZ8bnqdilCoG8yjxS64bTOjQYC5p3-ZG-lG1O6E"; e_upip="AcShYOhU_nfTRyg-jxpyieQAsy2meV8OGW-PrEXID0kDL4lpfznvqAsycPJAfCnoyn1asDnUTyjZdtUCm4skPWkvHDXpTI7dP7U"; e_fb_zone="AcSr0T5TL7zk2XmLvvE5rZya7Q-1b3GU5H-k1WAKqMxoIJSPfCrMkdv2DDeE7w"; e_clientaddr="AcSQAJeaRoEnlrGx-GVGVMkiKtoW4j1KOOQbYZDz1RF8p_lXrZd2N-weS-OjYL8M8ybu3z-ltE25LD1R6NE"; e_fb_vipaddr="AcSK20XL5qY3wNGdxBpCzDnj9OR3BYB5omQmlVXQC-7hRYgUvzgdNj2FW3oT9HRBssk5cTYUQg"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=719, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-26\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Server error: Error: Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist
    at PromisePool.query (/home/deshitbd/server-erp.deshit-bd.com/node_modules/mysql2/lib/promise/pool.js:36:22)
    at /home/deshitbd/server-erp.deshit-bd.com/src/controlers/stock.js:3367:34
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:149:13)
    at Route.dispatch (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/route.js:119:3)
    at Layer.handle [as handle_request] (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/layer.js:95:5)
    at /home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:284:15
    at router.process_params (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:346:12)
    at next (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:280:10)
    at router.handle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/express/lib/router/index.js:175:3) {
  code: 'ER_NO_SUCH_TABLE',
  errno: 1146,
  sql: '\n' +
    '      SELECT\n' +
    '        p.prod_id,\n' +
    '        p.prod_code,\n' +
    '        pn.prod_name,\n' +
    '        pb.prod_brand_name,\n' +
    '        pc.prod_cat_name,\n' +
    '        pcl.prod_color_name,\n' +
    '\n' +
    '        ps.prod_floor_id,\n' +
    '        pf.prod_floor_name,\n' +
    '        ps.prod_rack_id,\n' +
    '        pr.prod_rack_name,\n' +
    '        ps.storage_batch_id,\n' +
    '\n' +
    '        COALESCE(ps.prod_qty, 0) AS prod_qty,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_quantity,\n' +
    '        COALESCE(ps.prod_qty, 0) AS current_stock,\n' +
    '\n' +
    '        pu.prod_unit_name,\n' +
    '\n' +
    '        COALESCE(ps.prod_purchase_rate, 0) AS prod_purchase_rate,\n' +
    '\n' +
    '        COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS average_purchase_rate,\n' +
    '        COALESCE(ps.prod_qty, 0) * COALESCE(\n' +
    '          NULLIF(historyavg.average_purchase_rate, 0),\n' +
    '          NULLIF(ppr.average_purchase_rate, 0),\n' +
    '          COALESCE(ps.prod_purchase_rate, 0)\n' +
    '        ) AS stock_value,\n' +
    '\n' +
    '        ls.last_sale_rate,\n' +
    '        ls.last_sale_date,\n' +
    "        'batch' AS stock_source\n" +
    '\n' +
    '      FROM tbl_product_storage_batches ps\n' +
    '      INNER JOIN tbl_products p\n' +
    '        ON p.prod_id = ps.prod_id\n' +
    '      LEFT JOIN tbl_products_names pn\n' +
    '        ON pn.prod_name_id = p.prod_name_id\n' +
    '      LEFT JOIN tbl_product_units pu\n' +
    '        ON pu.prod_unit_id = p.prod_unit_id\n' +
    '      LEFT JOIN tbl_product_brands pb\n' +
    '        ON pb.prod_brand_id = p.prod_brand_id\n' +
    '      LEFT JOIN tbl_product_categories pc\n' +
    '        ON pc.prod_cat_id = p.prod_cat_id\n' +
    '      LEFT JOIN tbl_product_colors pcl\n' +
    '        ON pcl.prod_color_id = p.prod_color_id\n' +
    '      LEFT JOIN tbl_product_floors pf\n' +
    '        ON pf.prod_floor_id = ps.prod_floor_id\n' +
    '      LEFT JOIN tbl_product_racks pr\n' +
    '        ON pr.prod_rack_id = ps.prod_rack_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT product_id, AVG(prod_avarage_rate) AS average_purchase_rate\n' +
    '        FROM tbl_product_purchase_rate\n' +
    '        WHERE branch_id = 1\n' +
    '        GROUP BY product_id\n' +
    '      ) ppr\n' +
    '        ON ppr.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          history.product_id,\n' +
    '          SUM(COALESCE(history.qty, 0) * COALESCE(history.rate, 0)) / NULLIF(SUM(COALESCE(history.qty, 0)), 0) AS average_purchase_rate\n' +
    '        FROM (\n' +
    '          SELECT\n' +
    '            osd.os_prod_id AS product_id,\n' +
    '            osd.os_qty AS qty,\n' +
    '            osd.os_pur_rate AS rate\n' +
    '          FROM tbl_opening_stock_details osd\n' +
    '          WHERE osd.os_d_branch_id = 1\n' +
    "            AND osd.os_d_status = 'active'\n" +
    '\n' +
    '          UNION ALL\n' +
    '\n' +
    '          SELECT\n' +
    '            pd.pur_prod_id AS product_id,\n' +
    '            pd.pur_total_qty AS qty,\n' +
    '            pd.pur_rate AS rate\n' +
    '          FROM tbl_purchase_details pd\n' +
    '          WHERE pd.pur_d_branch_id = 1\n' +
    "            AND IFNULL(pd.pur_status, 'a') <> 'd'\n" +
    '        ) history\n' +
    '        GROUP BY history.product_id\n' +
    '      ) historyavg\n' +
    '        ON historyavg.product_id = p.prod_id\n' +
    '\n' +
    '      LEFT JOIN (\n' +
    '        SELECT\n' +
    '          d.sale_prod_id AS product_id,\n' +
    '          d.sale_rate AS last_sale_rate,\n' +
    '          COALESCE(m.sale_created_isodt, d.sale_date_time) AS last_sale_date\n' +
    '        FROM tbl_sales_details d\n' +
    '        INNER JOIN (\n' +
    '          SELECT sale_prod_id, MAX(sale_d_id) AS max_sale_d_id\n' +
    '          FROM tbl_sales_details\n' +
    "          WHERE sale_d_status = 'a'\n" +
    '            AND sale_d_branch_id = 1\n' +
    '          GROUP BY sale_prod_id\n' +
    '        ) x\n' +
    '          ON x.max_sale_d_id = d.sale_d_id\n' +
    '        LEFT JOIN tbl_sales_master m\n' +
    '          ON m.sale_id = d.sale_id\n' +
    '      ) ls\n' +
    '        ON ls.product_id = p.prod_id\n' +
    '\n' +
    '      WHERE ps.prod_storage_branch_id = 1\n' +
    "        AND ps.prod_storage_status = 'active'\n" +
    "         AND p.prod_status = 'active'\n" +
    '\n' +
    '      ORDER BY pn.prod_name ASC, pf.prod_floor_name ASC, pr.prod_rack_name ASC, ps.prod_purchase_rate ASC\n' +
    '    ',
  sqlState: '42S02',
  sqlMessage: "Table 'deshitbd_tecklyne_accountsoftware.tbl_product_storage_batches' doesn't exist"
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-27T16:00:01.284Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-27\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 2656823112,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 5396397,
        Symbol(triggerId): 5396395,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 27-Jun-26 08:59:43 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AcUbiTVuq0-u45d1cnw4YWl',
      'x-fb-trace-id': 'CGlW0FOCCo2',
      'x-fb-rev': '1042256123',
      'x-fb-debug': 'B9qpZUoOzQxPxuGR5WySvwBuDIHMG3L9YM3VtQ0LiyhComRbuM6F1z1RxvSY4J0uxQKC3zy9lh3ME9gRiqolpg==',
      date: 'Sat, 27 Jun 2026 15:59:43 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTnlkwhwByuAP6gB4zNO0e1WHxadxfrtyMbaPddg4tE2PoKHiQj6xx_wNh-XCyEW-jKslYz8563ikt3u0f4"; e_fb_twtaskhandle="AcTksqQ6pSHWzEVse9cg89L31afzjPomjKOl11pdEIKPx1LzQEAi4IqkGr_tjdEYvDaA5pwMhohHeDEPxvzZ55dik_EFKfF9rKw5c-RvZt_rliw"; e_upip="AcTQx0UZbtrsMfE1rCB-1mlmWzY0fnFfkGRybwCEaoTOIkqNhNmiWsPYA0hpyuU9HOtqTk-mdQ_1yey-t7nmsydWrmEMTSjmjE9My_J28w"; e_fb_zone="AcSmwxN3iV3UZvAvA-7N_LSV3LLT2fCbXDYEN1YzCafJ-l1nCK03lxcp4UWi_uyZ"; e_clientaddr="AcTop8Srkoknfh9uomxYMnq9VH6GOO-tbrlKNbz3yivL1aI9VugUsOObg3oGM3dghf06D6EMZc4qrPdxCgQcNCG-qgXyS-rucqlyFjLZchvlqjel"; e_fb_vipaddr="AcTvc9WZNY9LKm12Pv3VegNjhZokxfN5aYA8fFb8NMGFVRvScQmACme27Z9JIPwkKuq9nXYB_Gn18BkfKfVa18a4HPdPh1v6ZQw", http_request_error; e_proxy="AcQnNxGsJX8ztMepunrVOTPLD5BKC5KEAwRAuFs3QVeY5-YnZAdCD_gCSebDtEeSI-9BIt4jyEHt-6M"; e_fb_twtaskhandle="AcRUghM8HP2jg1O_vf9ELLOpuVi1EEbc8wGMAC_-taweNj-0AJzda0iCkXKbTOHWUDQs0RiG5svLh-eqryztMSfhJjroR6QYsQ"; e_upip="AcT06DCN869KKfu3e_gr7q-ofjJQC0CLkVN3TR9_xPtxLwYsA1fHCcAMq0UGH9dE2syL4ehhIhd7798H5dOvBa0vQ1rEWwgKnpY"; e_fb_zone="AcSSM5XIEDTM90u1fea0ZmNLF9ZGJF7Pvpy9JdmiZmusu72o7CwPHuhmwrnHuw"; e_clientaddr="AcSjTxkvL9WaBjQC5YEKQCB1hGKXKWAcl1bg4EWQbYNmlsc0ZS_jNiWMh4t1XLaGfJ9vf-yzFo4nRRyLlSY"; e_fb_vipaddr="AcS_1sIwhTYzQgqvxRVVE8WwAs2d5-huEbl-hHHyouX6BLrvOemgcTmWPUV0boFzKE8z_PIfmA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=13, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=787, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-27\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-27T16:00:01.385Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-27\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1807085858,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 3624746,
        Symbol(triggerId): 3624744,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 27-Jun-26 08:59:43 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AFVYSh_KFEEVn2r9Ul26wf-',
      'x-fb-trace-id': 'ETBL0sqIyXc',
      'x-fb-rev': '1042256123',
      'x-fb-debug': '3PuxqWnX6HfO4D+l4kivxRvvPJYpwRVcI2iu6M5OCut6oj2HxRxM0qbjbk5h+OXLixFkVoQqNHgDmkqIA0p7xA==',
      date: 'Sat, 27 Jun 2026 15:59:43 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcR5odOp9_LCG-l6Uj-zRCj0rBAS_MZeZblGJHHyVTIOOQgWKABCdVgMQ_-lBySOtJ5eVLnMPwbUCq8FZI8-"; e_fb_twtaskhandle="AcRSVgtLGBQx9qXf6ma8r_MppQ-iA078gTdRTqu0Z2cZcy6ZTq9JC27dWaunWzUsxNZpnY37zZXvAzluPBgitgkN-tbuZ3vaE0rdKaVzNtbUHYw"; e_upip="AcQXya4GXKfVEAikwTyeb7KeAXgkzL9v0iD4s7V_VhwgPPY8Vok8EKoZwscWr4nqKTUKdYV1yeDQ_HRj7ImkmXtqnQhCUSX7M5Skj2bOWQ"; e_fb_zone="AcTXcDrDXrBf59pETHK-8bG9-t6AUEmb-piBcyxO1Pt4B_uggdaaFUIGv0R-5vmu"; e_clientaddr="AcS_l16_Y04RwNFZ12IMn8tlIFslO3UHdOvtRkmW5PbUXyYnwbtT6YDx9bO-sWfeOFXNYAXaYd5lwURZp_7h4aye1jDiWNC4x-JiRK5Xz6xgXDT7PQ"; e_fb_vipaddr="AcQaqNdqgteuRwsrpQOBQKamZqjjFcozqQ9-bsTmFqJg0YKIjqZKlKgsZfDn42MozKbaStz4rHYQ4m9dY3rMzU5ELRiiFPotFXQ", http_request_error; e_proxy="AcTMd51wfLh1nQnUwM8saC1KvZRxs9u3cPI7F5VNuRH4avkrNGjBS3CBwdEP7CNAgyw0jAnWkvtqB6g"; e_fb_twtaskhandle="AcQaYafml_vid7JAjcIARSwsk7vVJlptRE_Au10ZdPX_RibIKfTEsG7aRHAWPuR2KysOx6eqW-TDU8ImyIHZECQ9O08QoQzvc6be"; e_upip="AcQuIsdsBVxvnMQacAV4KHsJYkIMjaLnfqb7gRhu6S614TQgnYQ9wnlpjIFwFpdau4tswbSumdDSU23vBGvSPpbctOBPOKz5Y8c"; e_fb_zone="AcS4KoptBYIMzLM1riOc8GDnQ-bgBOIBdT0ZjKyvFVBA-aNYCgbteZsi3kaWBw"; e_clientaddr="AcRfXLTy1EF-1gm8mM48yDX7GtMQsnmb14WvmWA5siYt82F8zOddPTuh26sDflTroVHGyJAc4MHEgBR3i1A"; e_fb_vipaddr="AcRT6HKb_y_HPMDOGgQRhw9Rjy67oRelZbhKFDQGYel7yIG9TPWTpjKFwWwvSpgAYn5aF28vZg"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=743, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-27\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-28T16:00:01.306Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-28\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 2743223133,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 5569578,
        Symbol(triggerId): 5569576,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 28-Jun-26 08:59:42 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AOQm4FvaL2Wa0t_UPw-4cTR',
      'x-fb-trace-id': 'DqgNQoknpfH',
      'x-fb-rev': '1042271047',
      'x-fb-debug': 'g70kPzzpL/bt+BAkMY4qlgMsfWYKrBzw3cBAa2+P3rvuRkACF9tqxCrw3E3ApRGJLweG6vwO+HzjMbmZHRKipw==',
      date: 'Sun, 28 Jun 2026 15:59:42 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcS7PQ7NWGw-nQ7cXznLkJ-YMJztd7f30LRtTq5KmpbDeL9Vl2YEKJHm8cV4swHCESIKe2QMgnrvlx8pGnbo"; e_fb_twtaskhandle="AcSOtlswpBBz8cd99Uf_Zqf1jFnPOZ_Fx52CIG9z2xjeuLtb9zkfsjLynu0MN7s6EHDK1R6jiD3-1zsX429XVYY9uHdvOQmAd4rvOHCulu3VLdo"; e_upip="AcQl8Bg8sZRF1FuZrLtqWcVhqywkaYs3fBTsWUQkgUCFP3XzbUPOo49-RzwfqOlk_j8X_ooRX0Li85bjSdF0V39wCXaKfTsgVdlNRKVfM4s"; e_fb_zone="AcS7kPDj6cAyKL19acd7UBxSBeKVNV8Lhp_IxAJdMBASEVx0TfDvooR-EI9iFlHP"; e_clientaddr="AcQdVr1ggA-SRVTxLd_xuG-aJFndNR103m1JXooO6Va3lTKxms9uRU8cGxhU31JiMYrtPt9WFxkw2T7wVrWVY6zhjhBxVMOjnRGMUIMGJOWy0rPj"; e_fb_vipaddr="AcQr58XS6_ihL3AJQ5xRqd4G1wAVYARQR_jHfYjrwXCs8roRtVxXMG8qYuYlCws3g4m5iIzzql85kFsX5W9oCLWWnmMBG08eSXc", http_request_error; e_proxy="AcSsH3rIlEdQ77bwcY5Bppf4zo-t6fWq2uxwEG8m6AH8xVwaCPjiI9qvELVCEcQNsk4-FBpY5BUTQXE"; e_fb_twtaskhandle="AcSJhJ_V7npX-vehnc1mAbLr8MejzuYXECjFZdGnni5RiLtwyT5uxwI_9NpVuFjQnyK0gS7sUed61UerKsox3S-xhDV7ko3IeAui"; e_upip="AcTRh8p7Lw8WZDMuOLj6v6YY23N-rdca2xnA85ZWIqHKqsHyYgiNSCKmmNt8izCx0q-pT2Fqqrdxzo6FAY1t2X1EWd1vYdO8grY"; e_fb_zone="AcRHPCEsng1KUfTeE5zlAZ8MJ4bmEgSyA1zgnhk4YkypseQ9FncYKPm2lCcA_g"; e_clientaddr="AcS7HI6J0V_yZe3jlIHXbRNzqQrjP1jS_GERDAzlVpY-75zeklnQ9VqREbZlwZ8mY5keL09bOMRsURT5DcQ"; e_fb_vipaddr="AcTsBaM1nWIQfveRrDr8doy9vHCkAW-tlnYj5u5Npxf1gxt092Y1uZoCQzes5Nuu97D0pTew5A"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=14, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=777, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-28\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-28T16:00:01.411Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-28\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1893485883,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 3797750,
        Symbol(triggerId): 3797748,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 28-Jun-26 08:59:42 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AkH3xkJ9xSxZUvH8SXvLCps',
      'x-fb-trace-id': 'H3IIJ15d32N',
      'x-fb-rev': '1042271047',
      'x-fb-debug': '0dQ9zs9sHOsASUHssxocTdxmtaEKdpbdON8Wl5ClTv6M6L3JMiFppglRI4gZxQouziVQMAqITNryZCJ61mFKnA==',
      date: 'Sun, 28 Jun 2026 15:59:42 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTgjWiu9i3PNWwgOFqPrwLv0CAeNOMNGXZsPq9KEzsSPYwPHOWTIUowA0YFrrtShDz3Wki3Gm3bkpYIp8RO"; e_fb_twtaskhandle="AcS7WGhXo5rGGGgU4t9xl6d-krE9yzP449qmI228CaKmoNcJhBVFjZvNxfQYuf2YlQxXa9Fzub4MVa09p9mOkfdFcJGA8hBFXcHrTC1YoKtpO7A"; e_upip="AcRVOrtone7WXnJAl7ADQwrjn5jtq5XMg24S1O4XRrtd1bXpuVbhFlgxOyj1ISHKAOQiXNZpWA3A3mx3fIwFyMRO4BJh8J-GRf2Sfn7vMAI"; e_fb_zone="AcTyblVkDC6ti1NL_HQ5SYT3njUCgC3XT253sOAe6EVmqPZv1izaBJPmd8KWq7lT"; e_clientaddr="AcSDFi6eqiHCsBnrJuaJlLTQgmIlCMw_aifxeUEZI974pbYUoQKzK_9b4gX7a7iaVio_bgZAgdqc3_sifSyhPpRe1eJnX5WZfY1QoIvrZy4FASyevg"; e_fb_vipaddr="AcRllAB3vOCWTAfOLBkVP4iEcHo9yLUZt1rYSas5ZPlSONip8TcXLA_ydYrcUPx-34OSpdOlcCmOtOHs72l2TctBtDim6RoEr0I", http_request_error; e_proxy="AcReyB1knBSKl85STHt-JW1MqbiYwpEkRjN8l-MkKLJUkhiQPhu_tN_uKiilrUs4d8YwaF0-_klnka8"; e_fb_twtaskhandle="AcTQB097YmCgFFVw7fOv772YVzc_ai67CKgiQnPOvU2ZoY7jh18JAbO7ObvPxGp6XnJJfMPrPY8EYhdSp9YmglwCL8gQbHAvwg"; e_upip="AcSANGJiyBl0WzlZcteGgWuhKpXQI9pfBMQOZo_79KBJml78HxcgOjNzRjo1JFxUC1GH2eQh_T9RNiTO65Cb71GtF2U5bnGKdBY"; e_fb_zone="AcTgHODL30C8RwkyA6656gA5_HZ080j_gJLHCNbexbGSstmtY33cfWdbywwMDw"; e_clientaddr="AcSYMXpawnF30D147-KRdDFJxm06tpmV4G7Q522T2VlXaTo27pIeq35kLEQx9hqKZWU-cnmVepwS0p8fTiQ"; e_fb_vipaddr="AcS4dwcgcJgqm_PPEoZrOeHnpRbTUSzV3_2G5E6HdGSpoY4NDeT1IigyGkwEjm1vICesR6pSZw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=730, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-28\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-29T16:00:01.485Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-29\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 8615774,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 19973,
        Symbol(triggerId): 19971,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 29-Jun-26 08:59:41 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ADB5wn52tG1BRVf_v4frQGo',
      'x-fb-trace-id': 'GdlDetw0+Kh',
      'x-fb-rev': '1042298793',
      'x-fb-debug': '2TwcF6nNQe0pSQB0fY+5k7PIf2/aa4LcG4FhAy1qXp43fv9oY9EBJtU8FK2xgGiyW823JN2h4Lk/+F6pkwjvQA==',
      date: 'Mon, 29 Jun 2026 15:59:41 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQCXgLqWWRnuXmo_s1yKXS_DZ0KsMf4dQhhWFFtEUknATJpJhSLligPoxTu1FkPGT3tiihj9x3uIJkaYGZe"; e_fb_twtaskhandle="AcRQTkIxl_2iAf2C3Dukbe9IVJMPBvLbibyjSZh_6ucP2Vh2cB0PYt54k5sB9ryYIxK1PPV3hNbfdgPjXeQLJGHljzuYUhlPvINBFD-feB25rig"; e_upip="AcS1ZF-bIsyeLmDC4kISHkQ30YHMHJnqdHX4v2vS6Z_8tDBn8V_xLvvWUaZK8EStcShv9ZRl8EriwA79JK-ocu4DJXoWq6DKCi8qc41GFEQ"; e_fb_zone="AcRWj1t5UqZKeOs11CEFMrpe6bBeLod4XHP6PPeDyRarXHNFoXMTl1B9hBjdKYLk"; e_clientaddr="AcQpXjClHU9sBAJV8YrA9BV_ZJJm-eht7U4AWdH4uFxKChWexwQ_mte2IP9sqVmuNYsqrRi7HFI8T9dqXvJYXdj6oUco8LutKFTI93_6Y7PE78opZw"; e_fb_vipaddr="AcR1ILX78SQL1I89F9oxIx7bmBAaw_NLcAlu5idWOhh3n0pNYO6lPPKz7wW01eAiBTH8OBNWi4xvcNVQAJT-ZcFeEKg6b9B81FY", http_request_error; e_proxy="AcRcMt1hrdznSWo-1xvzp_fCw61hNF2mHCZkZQgUq5PAEMVpTYQ7NZvwZb-7pab8DSab2pzGlWSwT8U"; e_fb_twtaskhandle="AcSBepCiPeA7XTVi-8ODIut2Yi8vEKcpdGK-8hGF1HrHosIY5EofX_tcp-QsIdCgRNY1nw4GvEr_DRT81ER6omjXujl-w9bFbj3eFn0"; e_upip="AcTBZFez9GKD2YrfuLGBJvPiIouMeO8SlBRIvZmYH4Dto9UPz-Ew3XrCjXziYP_xMLO6cdd8jDGslYhEl3l9mLrEjNtw6_1_lSw"; e_fb_zone="AcRgxz4MXGznXfeHpwuIbKVIcqiindAdQQYzCgwgnW9OQK7AWuUD4WRnvudrsQ"; e_clientaddr="AcRGLpQWhfHF5XVjEA7vE0nyEEaN9lEjUkAou7S2-4F7zNqrM4w5Cex4mmT7YG_cRtzEqILi0o009I7wxhk"; e_fb_vipaddr="AcTiljUiwj5R_e5uxqaxOgcK2JRSOFD4lZNUTn0ZDhWDee1K9w5mr4kFHQitN6PIo2PXuilXyA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=18, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=769, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-29\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-06-30T16:00:01.319Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-30\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 95015609,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 193078,
        Symbol(triggerId): 193076,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 30-Jun-26 08:59:40 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A5Gog2wZ911Uz8LnzVqI4mO',
      'x-fb-trace-id': 'ATTy2RbvZVq',
      'x-fb-rev': '1042391138',
      'x-fb-debug': '8zRT8jKe8uu5ZcIORASc1ifLZ6vddD+WVkTLNhs5/3AUuxHcqBwuw5XJwt6IFI3RpnIdzqiIbb/oxjPK/3bb4A==',
      date: 'Tue, 30 Jun 2026 15:59:40 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcR_2SCGKrpLxMaDMybYQPyRvMdBrJhNSvNWs8yUnO4jY6cZQCUuUcw2XtWupSblmYuub4akhsL4PvtbthDB"; e_fb_twtaskhandle="AcTQ8u4nTQmKHNKTcRZo1SD6EDKQa3A5w_RC6wCumjQ_sRUQ3s5dmaVaIbCVnF9k8y0S8bpn1TiyZVX7hhN8aLAvcxdfgmMFNdYOiKUxjA-VZ7g"; e_upip="AcS8rWQa0dwNJ4-vGk9EOkVFSb2fsXheX-LJVXg3w-2rt_ecMQaOpSN3on_1qq-82mEboLeRjwBEmY9Q-6L56tN4G5vwibhlvWcON5MY01Q"; e_fb_zone="AcRiliLyBZFBMT9z_oEVyhKOck-W1_5gWl_WarGI03T61TnjOyuHO-3XSTo1cEpZ"; e_clientaddr="AcSnYcALPs6aT5-Zp3kmTx0cDWzPT_g_zBX0yMEyw3e_yIYRrFpWms9c87ZL2WsXd3eRb0eI9NZVwxUsXNRfewHCck6GjGrFD6_05UFBPg2VoFG7Wg"; e_fb_vipaddr="AcTXfH9zZrC3Hpe3I0aXSakme8zwxWjHsZifstiyvYZie34l0y9LZP_O2HC3P-ip_Es9lXA0Kr4Pa0WXQ1OB-aD_SAUKFhPzHnE", http_request_error; e_proxy="AcTWZ5c-hZ05KQRp3GymO4bLcPGVjc8qmK8xaROZzDx_Bw2jsw0U8upyndHDmL5zfqTOS-72KR7vyrs"; e_fb_twtaskhandle="AcTz7D_efpzkrJNZ46JU-E-HKJJDKh2XJEal8r6vfgpk3hLbRMdC9WPKJ8fDEVZjdcwYfTTEWB_RrVQJgUhd8S4UOuSw7EtMUhYm"; e_upip="AcRU3BXUfAs1ollvsgNiAfBgoOA9BXwxMrH5D7sNLCTeT6EqhmTMsiIITAmLwe0UtfxRMq4wVwVISwcRCxppBrFmwnUETjPb4wg"; e_fb_zone="AcShiLYD3o2kq30GwDjDtnQ9cpGf4bendeU9yHWN12xi3C9WDo6MjBkvaZhBIQ"; e_clientaddr="AcTrb4IVOWtj8w4nvE6iT6aGLjcbEob-sFm2xA969tgASFxWZ2ws1aYeaFRwB7uxbIJpot7XhJBJ3aIILMw"; e_fb_vipaddr="AcTb_KcRehHx7ZjFt2Kr_JBVrdIEmSwW03qdoJK7s8h4hxILf0wWheSOU_hQd7-tCOpQujodsQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=299, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-06-30\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-01T16:00:00.999Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-01\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 181415288,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 375179,
        Symbol(triggerId): 375177,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 01-Jul-26 08:59:38 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AhAo_LSziqww_AS0cnjniIG',
      'x-fb-trace-id': 'HxK5DE/LOeD',
      'x-fb-rev': '1042470511',
      'x-fb-debug': 'FPSp+0BhnZ6JrBNwEfYAxfch+iMynE8TS/cYoHvh489CJqlX0/rbON+buHi6wOlRAsT0fXIz9kZ/NTj2LnysXw==',
      date: 'Wed, 01 Jul 2026 15:59:38 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRxXCch4dDgJ5NZU0lWH9YSrfeViOE1SyMDfP47bDjUsj6CZXVf0ryOsoQERB83cNW1wuwW3IInxJvotLjA"; e_fb_twtaskhandle="AcSa7jl_pnJDThnqhiKRk4qhM2gd4QVr4ARTRoDmnJ47992AEqW5oUgp6maXhtCb1iRj1c8PbVW7P5pv_PqHs2KWT3HRt4cqL2sutgWemMOdKIA"; e_upip="AcTTaM0ebgDj6SEzlDdCyfdHqperFdhMEIi64l2coJRYCinD83MZKhDeVEKIktlrfLL-SsM_2pQZQ64gEy2ecZxkstAAHnPC6B5Meo8xqPw"; e_fb_zone="AcSsr-jo7zH2OT1t9iTwZwY_x3Qhsp0YBXnGXx8wqHEEVMST1MPc1BlABij4KQR5"; e_clientaddr="AcQvLfEuVhND39G8uOp6IPDzMcw2s8BG19KO7ACuZ6E-4oS9MjdSWKuAIfDlxatP-NPmIchO8klmaF5gj6ZUn-CyYARag6tLMi6ThUFdkP4Gq3UU"; e_fb_vipaddr="AcQFRs3rAe0ClcTbtjk8t6Gsg0u0KMp_t9giwfQTPunkGSXJmoJvEM4dF7GSIsg6GJ-z1mLivT1jpruF3BUbtEGvo-mGH7EaedQ", http_request_error; e_proxy="AcRHdd1d_q8uWM9wye-94trSBLiRjxlpDZTQutJTWiw5Dw2-tFK0KIknXaUq9CfAothzVYAF-KfcmbE"; e_fb_twtaskhandle="AcQoHbZs0ncJbHuXgDaD3ojPi_puXdNAB5s-oExKFtVGeXDmFQ1G5GJX0jAArk-4scm_rqPANaFLAHdpSPssNnPrh-FCvkciG7ID"; e_upip="AcQGh1IyicAxv1PeJBAownY72qZhFE7G1019-csxoDvq0zZzAeEIlPF7liad8xLxo37LupD1BPgxp80xz2XtneW0WiPeKHGsbgs"; e_fb_zone="AcQtdMHNdP3cLxdm_gYP-NHDTjc-zm9I8fx73C_kR6SNrrtnR5twAzCVAm1ZEg"; e_clientaddr="AcSyeclNeyaqhr4s38VXiAcOk-B9TI0isgMo7BYNvVaHjoSJWHI5_zhIIDnYjaDe5EMmQRXM8Mpci7nzzuo"; e_fb_vipaddr="AcTNVr2UhiUM9r_thKwV59owrSkTkjrIo8cXcHh721YovosxVtYKf2PiJId5lGRzsTXolLssHA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=841, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-01\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-02T16:00:01.565Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-02\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 267815855,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 556964,
        Symbol(triggerId): 556962,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 02-Jul-26 08:59:37 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AXswbTL_PPW4MFQ-Y282evG',
      'x-fb-trace-id': 'EyNzhRVRCr7',
      'x-fb-rev': '1042551545',
      'x-fb-debug': 'dJnmW+iSrxiN8NbmHHHYLqqcVTPkrBQ8EMvL4UUIJqwVhB2BWDo7DMePMYpzIDgaMa4Al68z5u9e525/JvoqbQ==',
      date: 'Thu, 02 Jul 2026 15:59:37 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcS7lFqzKBTQBWC-nl2M-WlTb93GtkQjbfsKlExW-H92JV5IH55HNzi3zIG3EFbOGAHJnLvLOtDY8RaM4QY1"; e_fb_twtaskhandle="AcTzLkMBDIX8DkPkyDXgmqdw2QSEJa8v2EI7AF5P24bZa1tk9mzg138Yd5AYNfXE7MCJDJb396YWvEWsip8htPvt5zOCkFd-JEi9DhXz6psH3js"; e_upip="AcQSEVvahGFGa7YlODFteARp9UuxGB3vfGCaVTzDwL51hLgx9Vs5v_IOCVPLpT73bPNoqwAMJZOwKbGeo_QEHEl1Y3NYiv41I5FGpPvgzjs"; e_fb_zone="AcSXQV35QQZrk63mZG0yHUC8c9AaOTfXZqQjDCH9X-eAUJK8-59rJw_5c0A3kQ1D"; e_clientaddr="AcQJfKJFSo-Ynm-1RHZsfQRRVT8qtLK3MfwJgDP-m83cRzYipZiLwW1hTIFt17Eh5N6HMHg6eVg0z8sGCVT4I2kh8X_n6MTNgImvPk0isPsmQpfQvA"; e_fb_vipaddr="AcQBuX4qXPOkQiR0IQCVDhZM6KxKcG-JoAgXjxpSDEodeE12EFQmAz3cVSF3z42Yl7JsDCHE9lt44wKjOU144zvAirxi83JQZdo", http_request_error; e_proxy="AcSqrngpoKyWjV6o5KoHh7dwRTz-He60I_zr_RsouKvoRVNnBHjntcUYh20opJsx3SkfIreXcQfcgHU"; e_fb_twtaskhandle="AcTj38yz7T6NH5iV9bfb1IQeALs86AeQoJnaHxFWcYu0-wk-K0ecv2R-cPW4qmabiDswK7zZ_nv60-_vxaRpQthPGEIz0Cco4EXs"; e_upip="AcQ7k7KDOUIKQCF2q9tyIraezMuOAVPR4qNcw6GDlbZy9blFEyyLuBGs4weweGgteTL8SL4v3NB_s89i2y2JLng_oxyM8fcbjV8"; e_fb_zone="AcTp4rP0-vIg0zLywqwap3SxiAcAB7pFMHq0KoLxrG4YS1-L7n38vo9ONuFuag"; e_clientaddr="AcTu-6c82utKMkOmO8aWPwUuBLbY2rlG2kHxVKaDw_5nVp_T-e0YJtVdMis0OOYYI_JL2IOIytwkYgcD1tE"; e_fb_vipaddr="AcS3cl0z2TFngwBP0PH2Wsac_V8i3_HAVFTAwXtQYuJ32GEnRXD8cXLrI2ejjsmhGmsr79Q8Bw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=773, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-02\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-03T16:00:01.819Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-03\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 354216108,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 731870,
        Symbol(triggerId): 731868,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 03-Jul-26 08:59:36 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AbJS-zmsfZXb5OaklN0qsD-',
      'x-fb-trace-id': 'CZh7klxwhyF',
      'x-fb-rev': '1042611748',
      'x-fb-debug': 'LVOnoc5h+2R44ZaNZYhlquIssGBA+la1hSmvfTdMvi5e/hMl7RXIp7St6P7kVwFU1vBYmvPOWjZggC265zJhWQ==',
      date: 'Fri, 03 Jul 2026 15:59:36 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQnzAGsSov0iylgotIabomQ0hDJRrfgON9ppNrL2mlsM2abIGzE0Jf21_abUAwrkXJVU2hVxHR1OeEhlqp-"; e_fb_twtaskhandle="AcSlW9uFK6NCJz0awr1DPpAv6s1nEHIJ5CM3wbrnobNXmscO23jBq80SSHISWDIzDhoaa8_KmnpZhahdlA2kC0ucdXuDVYE1dep5S8moS1LbDO4"; e_upip="AcRuw6s4n7EJAsxi6Fk1SvKamEB7HC0ZNU-Ga3IIiDMS8F-ORMzBO9mK-xnXRoOxsZMD4BzA1ZT5solcWQ7LDxX8LnvcDn1EIKtHlfpDfCc"; e_fb_zone="AcSG9IzGbWrHHkEXYJ2AD9NCoZUIcCub19VYpQh16njs1ENzedJXEUaKiPk92CLR"; e_clientaddr="AcS8nrQ_llZeufDXf0JbIXEp7EnBWYHA7RdaFKeorQ1OKOVGhuB-YpLkTDrwM7kYRJ_K_ss2LpL4GuWBtGd0EPhieONCL2LSYIsG8o5lqQs06oDYaQ"; e_fb_vipaddr="AcQUVphJA7IwT8OTniT4gLXfgkEVVBC2pKbUQLlT0qnUuR57NCS1NCauUt65X0G9rdjvi4WCOgR2PhdVs3O_-4ma1dvcrCUGwGk", http_request_error; e_proxy="AcQA-Rd4EHhqwnH-uf1n02kuA2ODEL9ybWOXfgoHpgJ5ZffyYJO9c5i81obftFNXKPd9aar4uqZFqko"; e_fb_twtaskhandle="AcTC3jZ9F__Por1REIAWTuiihzB1ML9Um1qVgep4urV93jl7IRpUgcEwthrbTPzjj12hFpBR0ngsXuSGQ7YvLZl5qL1hLhwjpBzH"; e_upip="AcSiqy0ecVAKsK8TfgDqX6lwF23eGfDc6Tcc85QGo_OSG4zi8WeJc8xL6-ITtF4m8E07pLtDYKtwfwyRG4LUeAnC3FV5S7AA5PU"; e_fb_zone="AcSEEKU3YOn54kngo8kf4aMiipuxOFBrd2KAv9-kHnPDR5MsKMP8-aGe1cONWA"; e_clientaddr="AcQFpbdPctGFtasEQxgT-jx91N0RYiZN8QhBIj6Mkp4GT3sC67aqKeNMozIwji2PrEdwc6kOGhn58LvnqK8"; e_fb_vipaddr="AcRo7njiH2RJGOOuYepdEgAI-xPMvS8zLGs1UsnqXjTXsbkjGb2rBSl_K-Jol5o7lxK67_BTPw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=13, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=774, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-03\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-04T16:00:01.264Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-04\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 440615554,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 906998,
        Symbol(triggerId): 906996,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 04-Jul-26 08:59:34 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AcZOOZNOfoaLNhO2x4isWlG',
      'x-fb-trace-id': 'Gm4lxvt6IPp',
      'x-fb-rev': '1042631103',
      'x-fb-debug': 'Qdf971JUMfgy2XskAycQRb7CGCgR+M5k698buq3TdnXVrRld5YCwl9sn2Raw2Pl5UacyXuq5GO9slrswuqducA==',
      date: 'Sat, 04 Jul 2026 15:59:34 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcS642WDptRqhcVG08lbGfH-qW475xu3Z2B0EJT_iC0xz9KG8Hj5SvhdJWQcmPCuOg1Ts-Md4_MAQ0Bgzc6V"; e_fb_twtaskhandle="AcTI0Csp01AXnXVIhVeuWhHZhRELAMHXuKljlGdKKTOpdkziABzNpAq9tPbla-WllyDk0fC7Y9jSgiZUkjzIt3u4pCyu1FiUwlZ3SNT-9tJC9w"; e_upip="AcRw4R4pFEVS8LZjXf_bW0rY1MQmyuP-oLmhft5MZo5zPOybRPGKTIjQqeBvuadzEOPPUZogHkjA1JTFnr6Ge4_VXejwDMvon0jp82noIw"; e_fb_zone="AcQDZfPiQKmzbITiPX5Qydx2f1ytyDnNuWFKT3yO9PijRS9UJBQP8BFaVhlswydM"; e_clientaddr="AcRy3pqPqxPijAJQaM1R3cnG1DHRe-7loXWAllhqQ2IAl0eSp-RSd7j5iW0a1VQiSkNfdu2ShLpa672osSHf-7lIETG2aTyvupiGIdMfhNYhxbYn"; e_fb_vipaddr="AcQ047sL4Pc0I8gzcTRtgt_n1wRfBlRemty3yqLh8p3W83jp8vTsNJzXly4bwzC_2PJGh3BYV1WMHZIuQ7ya4deiIawSYtr3LKA", http_request_error; e_proxy="AcR5GZKzOshjtgIsurc19fedKjwG-mufIGu8veCWbnctzGByCHiIvnTrcWuxf4yf52ueGwoA2BNy8-g"; e_fb_twtaskhandle="AcQNmYbch3lVXH1BD2-tRKyOzlHfSaq2cV2T2NX0nlZc5JZl4W9oZ1EFlgBn5sddJiVayzUc_R3Dzb5a6OFhmu6B0h15H6sC1rXS"; e_upip="AcRaKRDn66vlDmcWVLuA7dryPo81xkAkAUEOJ8yo8sZe6_NvczaOnBXl0hiSrKR7MqjBEbNp0H3vurH421Tw_w1g8yZlr3Z7nac"; e_fb_zone="AcQBRrTXj7kVFWrk6Dj70PKu65q_ow1312TDLRG4hNLJ1qdSVvfKHfPqGMDh-g"; e_clientaddr="AcRS6pmIyS3ulgE2gG64mEQAQ9xaR1v0_sBz82tQNnJSTa2UPNHsFgpuYeq9uKK_W1pL7SD8iJRsm1PiyVo"; e_fb_vipaddr="AcSDxDaABeyjB-rltzeco6w4w2NOX-uom0eAtXF4LB2SNBePdIuZ2G4TnoIP86Pcz_obzOgdJA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=795, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-04\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-04T16:00:01.307Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-04\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 77911750,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 157029,
        Symbol(triggerId): 157027,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 04-Jul-26 08:59:35 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'Am2yIO7tTDI76-fnWM8yln4',
      'x-fb-trace-id': 'G4/N9XcbQ2P',
      'x-fb-rev': '1042631103',
      'x-fb-debug': '3rfN0oigaAUS4kXsK7QaF5tN2TzVb7LRdS7RGaCzhFxtC1sSnyyPYkXPQljkaEVvgLfVPP5PvZYx60IBT0ZuPw==',
      date: 'Sat, 04 Jul 2026 15:59:35 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTacnErRxdwj7tyjGAUWyQtKlqvB2qBZDENxABELkpaY3GZy6ELCNkSTvhd6WiyZTFujVpF6T-2Ns-VyYfJ"; e_fb_twtaskhandle="AcQpyB_h3C5QQdJXYcftAb-ewjvcF3_nhRya9-OW3V_8THVMO96IGA2LHip9n2HjPur0eLBktjs5Z4pSWzx6aAxm-a2YlwLQDIiV_nwza3Gez-I"; e_upip="AcSPl0KNnW_D08EvhFdBAoHOgAYNZrzZsShbZJvFih49tNArOoe3jKzVKRKuR9xBlsyF8dPVLj53f0k4MN6CTXBDrPPw84sJrEsMRGzFLA"; e_fb_zone="AcQz6suywn7yWBJILkV-xKmo59PdRu7YGcBrBZZB7oTDYrrsvaXGgfoCqts5Chun"; e_clientaddr="AcTS9dKMS0Wu-LOw_8sqJT5ITEyJjg3IyFlCcp6VpqvH5_F_saNgZCobgsH29H902WGyA_4XbYc2p0u-DF7CalXBtSeH1YYUELQRsZLdxgA6KFX8Gw"; e_fb_vipaddr="AcQ2uOmzSFt2rMy1wpGd-IpYo9dTj-Q25eCdFNNLztZWmimgCl3ebew8vGLIUq5Tklb1qPynvr0GNwcssPgVKpW5vfGo8P0ogyM", http_request_error; e_proxy="AcTSniqJCrmLTFIi5RFDzSt-3ivOueatbAyQETqQDsYJwNox5qaA3tWPbmWZqp79yVv3MRqCEGkBywQ"; e_fb_twtaskhandle="AcQ5ldbf4rATd375ttH3jA-qzqNME5CSTfX2NlyVZXT8ZiJoLV-CfyoDTcz1BwxKoU6E_crvUaSREf8oO-AIY3MDcNdMFr8Wm4aB"; e_upip="AcQnkgP4PzbTczVLu_lJV2dnM5WoT8bwVVZTUXoxfE2P6R1Qib-_gbaoFX5NgXlEQc9e3bzttkGToh5gBb6MncGYV-RI1MNd1fM"; e_fb_zone="AcTGYmHcGacUvGttqJTeXcdUhgnomzj5GIoHqN6q3l_IS-OI58vxw6gwM3kXoA"; e_clientaddr="AcSMzb9QptzW93vLQ_TT6mimsqDbM_We4LU7pNpxO8KEr9rd9BlBDb4ak1UCCMk5k0e5EapKgyHSXuY1IZk"; e_fb_vipaddr="AcSD_wI4GOSsR9Yuzz5fhy8cwL4GisigH_ngGzlf8THkb9tusjfGLCCDCiHWjXJ-2JQaTZ-elQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=742, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-04\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-05T16:00:01.305Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-05\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 164311749,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 330033,
        Symbol(triggerId): 330031,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 05-Jul-26 08:59:33 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AMzebv9ziIFLoQlpXpjm_Zc',
      'x-fb-trace-id': 'D6FzD/DutUz',
      'x-fb-rev': '1042647464',
      'x-fb-debug': 'Tg1X5Dur9bKRrxXGW5xEpqmZZtDHf+ukr7JhLzGGOiXB8S9FCmW2REoqHhpORn6MvFTS2lvqDeZ0kDX4cGjoAQ==',
      date: 'Sun, 05 Jul 2026 15:59:33 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcR3ovafhJga__FfDA9Yq3PvINHcgt2o7QFyg-Z0XuFJK7ch_0eGpT_z__kTEpCRm54NnQQKq6eVidaTb0RA"; e_fb_twtaskhandle="AcTLlyD1opJHgOcoDy_WrL_uYr3TgbpuIYl3G1yHwABfS71HsdFvBSvfwcPsVa_3qLIH_N9tOiWv6MkI6oWk3LpSq_0o4vwBH5CKetXm84aKLUI"; e_upip="AcRgzuZoM_MOJn2k6HvqBM22ZN2AWwbEFSPNzAmGXE-eccO4pUYi2AC7inN9E8QxlGsv4A8rSIv0gOnGdoQrZNHemN_7iUztPvPf7I5P6Q"; e_fb_zone="AcSyE5O-5mXYXQ5X3RX_QbGXcL9i44xNvjw3vn_exFk4FJluHQLL_zh6JjD5LdoA"; e_clientaddr="AcSAuWoTy3MMWPrerZyTGGp1av12t0UJ5c03shzUvESXrAG7XjwpSaZEJyU8pRIpf1DoK0XvpxIqdoDBEjKT9Qs-10fxUu7gtLjzQq13D3fXSRKOpA"; e_fb_vipaddr="AcTfFMTxQuKM_vZ44GcLzoWqGa3zjZUSwtTUuMluDOdUS6qw6xCkIQkB7AZVDutaz9AaE3XK4hgTS7IERSuECDkXdTL_x6Kn3bY", http_request_error; e_proxy="AcQqd69kMGSnGK_JH8dT-6ItBBYuApqB04VOkA2Sh5ApwTS9MPNUF3ecqY7joEAdKUPz9IQlmsGpziM"; e_fb_twtaskhandle="AcSkWILgA53JMo6a9t1WCGbN9LGNgvvMJNzQ7EP7vVuBH8fdmOq3wnPMAADCsBkuynGLm9ZLLzEoZRnSgwEBHG9GNOn6iMht5Goh"; e_upip="AcT7y5zV0kstYbTuNkQ2pfCDT13RAlOMpSk4WO4-SdgEPcOQHu2O2b5vJqZLk29JnbNEqhh77BwSy_g5maj3XEODXXLWbdRkWYE"; e_fb_zone="AcTzqSsfR312oEsp49xQWxKUFSyJIdzpcRYUYMzf1rHm4oeFdRMxkrz5PH85iA"; e_clientaddr="AcQ0OqIlgKGbiKyCV8kul0dippS0nYca4OBVgKAPDdgjFvYfD81gA1nMfaatF9nxn6NfByyHPlUzEBvpVRM"; e_fb_vipaddr="AcQhWEt8PnXVQrzUmWiTzOr1uPgBajTjT_NZPMmjPxsv8gjJ3VTJrj4afAxUqcCkwrMh7Fh_Xw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=13, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=731, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-05\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-05T16:00:01.309Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-05\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 527015599,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1084108,
        Symbol(triggerId): 1084106,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 05-Jul-26 08:59:33 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'Asyo-qybJAXtROekCDHE008',
      'x-fb-trace-id': 'HAIhfi/YXE4',
      'x-fb-rev': '1042647464',
      'x-fb-debug': 'W5MQvhGJLLcbEtMmjnwazYLoj31Wlff5eDFNreO89UsfX8ssDnLhOMFfJ9GX1p1cgBvXZFAG9E9LC414evFXPA==',
      date: 'Sun, 05 Jul 2026 15:59:33 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQneDBe9eHYxrroVfPXBfjKfQBlvTLlvTUtWSopAmGSANk4vHaIuLpC2mao-d9N2IJbWs9DAzbt4hK7EnuD"; e_fb_twtaskhandle="AcQ9_yPGWyhKmbSNL2eQtrhpgtTv5rFFuVcKUtb8YtrMdurTLpRqRuMNzwqqKF8IovqLE8keNu8hdxz_3I_ceP5l2LtkLe3eL8wHBzwN7YAvbuM"; e_upip="AcT_oRo4rh5krjuJFAMDbEVoM0UbkWG9ZShL9WdtKSZo8s2XnlhBQxg7DNAU-6gt0bV3jZKHWpe42o3xYKIRLCyk8v7TzI7eSRx8xZnxRqA"; e_fb_zone="AcR5tRiW4C9FGtDOJPsLmdeLZM1UkCXjc8rhC8WBT1Wv3xX6xcBuQKH_olf4zfOi"; e_clientaddr="AcStoyiRSQzhlC1IbME4F1i21W9w4XS0_b31h-Nyd5ZOyD8v4qMPf7HwafZmAvSZUzMA59qra6kR5f4lYVp7cIabG4p4ogQtq5joJjmKCoSeWfufVg"; e_fb_vipaddr="AcQgFPdAlw6a57CiPIK3ZOukDuCRE4-CyKh5PxHL4UFfGWVff5yBA3tR7h753HFRD40XRf_8aUjCHyHHVCB5pFXgv-A5bmDin2I", http_request_error; e_proxy="AcRq6FbpLKyc7tDqJUbgBrmBez2jXVeZm44aas233AGf47wzfBpDCog4yMtebYBOU0ewa8P2RUX33Yw"; e_fb_twtaskhandle="AcQ81dUmDQk44QoiBYj2yaN80tFBKBcmEYU42STy9xpAl4hJyXRPcs4QBRCdKAk9IArJFhUH8NBRB7-1MoCGLnzKQmjD2jWRpPG0Ng0"; e_upip="AcQjyttGO7lKfi2GkNN18Vs532InsBrKgmeStggb6HrddM_IX6W_tHr8te9d83krI63i1FR7T380oQ28l8skcxN7hXTt3NSDc7Q"; e_fb_zone="AcRdAlMZ_udsg8VdotqzZrFoFzBkZ03loivx61XBwy6qITDTQQp0FIMwx3_VZw"; e_clientaddr="AcR5HkHwNXoyDVbjivLks6rqnirEVkextAZYQy8h_jyzjGQ51OvZmkJ4AJ-ORgQqrgjJpgEXBgioRs_xVLE"; e_fb_vipaddr="AcQuRSEiXGMl6Y6YhQiOpG3FzfEQmkn7HS3wkvwEpjTa1zM_EnYEP7LP824HCU1JHa21HGBsyg"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=810, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-05\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-06T16:00:01.439Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-06\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 250711882,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 503037,
        Symbol(triggerId): 503035,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 06-Jul-26 08:59:32 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AEwP3M4uu5Jrp4yOchAjrhw',
      'x-fb-trace-id': 'CbxbXeG/dgm',
      'x-fb-rev': '1042659242',
      'x-fb-debug': 'HyzjHOXH/rQ14ovlHpeKTjcDlpRc5fk9XSodfmn6mxfIFjB47XlODpKqB1wexRSChoKjOHanWpy5zMGjQMDt/g==',
      date: 'Mon, 06 Jul 2026 15:59:32 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcS8aphBY0iMomL54qBPhqAUxENehxe6ZnwvDAop8ew3Zk20EvA2z3S3BwDFnGwxuTOXtcxz2ZTaikSKROTN"; e_fb_twtaskhandle="AcQ12ZSiCTZLVMwt0jP0HFF4clBKlAGUVKeLQFNyMXLb2dVnoVRIrePV5NkM9cwWSIphWNIfMm3nvwu4n25cDyU6rB04iIMUr_fjJCOlyUxeQw"; e_upip="AcQDaSrHC_vDaX21DyrA2oRmUQrjfMcQ-P5sHa5C6kc55jVu2GCdSvPK1_SblBid0uUZohwPccy5D520r1ECYKwHA0zoOlEI6I18HNAorJY"; e_fb_zone="AcRyWDwvVVhPKfFIkH3D3APQAKwfL7JeAQbyRbjKRl3xe4wfO7Q7xw0ETfTgzi1A"; e_clientaddr="AcRWlAsxrKMn24Zl_OfJBMjBpXgc85k4gwSvpxafjGzluIzPrX8zXi0Ca0ztf1f4gjy8LeUXQIZON2Kd6rkolJAa3jsIsm2lCW8HBbYVrUhhUVIJsw"; e_fb_vipaddr="AcRQBObWMe_1akBacig8QC_OBhFm-5_As72WPfLR_NcYYkVJWmpX0_scEdrRKIFbdw0MAwlwfK2pXA9Q8tAiS4nuIjWbc1Y6xII", http_request_error; e_proxy="AcR6V2Y_LJo8seFKk9uXMNZc46baZxxqweH7A0Cn2ujk0EyZ-cpDdIMVHpf4uTQ0hLmtBm1TxSC2eFA"; e_fb_twtaskhandle="AcRrbHnaFpdoQijmzcY9_N-fvzWBMh2RWaIF0N4xN5OfytB-nbDpYL9NeCpHRjr31fSeDmzphxo-WR-IR0tGIxbqs16QNlnGQG3P"; e_upip="AcRrQDP7ZG2BgQIxNCPufZH_qDzpBfsY4MLVVVuooKA-35CeKog86truYH9JkIdnTr6AXLaEDtLBojzBvqkCyvbzO2O1ZAuF2jU"; e_fb_zone="AcRf06M3x0bt_JD7DNOZDBKsv8XiVdgfsEfc38NyQjnercN4_GWoq8qId0jQpQ"; e_clientaddr="AcR7VckC4MRFf5iq-7Rhbfq1S_iJ8JWS2jNCcsoHJNCKuPi44KzHK0tAqlMdqSQ6YKIylEWcdsZHgGFCzLc"; e_fb_vipaddr="AcTE6AeEWoeVbhD81pWkAJtZSm2TR0VyZeWrXJmeKfExfGWKw_gp3VlBnR3D60usV-9FG-yJ9w"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=13, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=714, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-06\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-06T16:00:01.446Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-06\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 613415736,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1257560,
        Symbol(triggerId): 1257558,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 06-Jul-26 08:59:32 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AB4w4OpaBzK2Rh7k88wwuq8',
      'x-fb-trace-id': 'B//scG+jQpw',
      'x-fb-rev': '1042659242',
      'x-fb-debug': 'UDXK+40VA3Z5wYxfLYAmD9vGcmW/++ynzR9L5fu/MXh8D6QZN7JiXvtaqMtTp9B6kKcKHxlcDsGHHH3FNfnwfg==',
      date: 'Mon, 06 Jul 2026 15:59:32 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSGlVexlYC7u75SCdoOkuGxi_rHaZIU5A6ZcwRymW4ljR6KsAh_1OfJt9t7rgqWULG-_gG8XmG-eM95tKAw"; e_fb_twtaskhandle="AcQ1X-CRImO_uSEAzN1UeZRKCRuJtENwTEy4uG2nrQl_8hmkPHwLzfKO0QUt1B9Uq32hAjLvkmEIsbUQDGG_Q76RYhoFoQDl0SQTHcWsgg1fC8s"; e_upip="AcRNRVWhvLrJyTXx_mY-y9wkzuvhlGxhiV7pffJkMrPVFnuvSgAJFnySLSknFkn4OAi2nCrHCK-hri3RMWIRqZJ8IASQRhICwafQB4wnMF0"; e_fb_zone="AcSau3UiY8h91roUr7hGbcGb5yMpYwko0HT7D7SHuf7tIwZVU-EGm5Uk0sUDb0y2"; e_clientaddr="AcSxdeLlM3F4YNtNTvJVvuSAG3NOrcLpr7KtimNe3rOSzI0dXV2j3GKy65lO6EL7KIpc4KroM4UQ4OfHj1KV736zOi6Ko-kBYEodO0gOKGob8CE1Zg"; e_fb_vipaddr="AcRP0twptRojjaVn02j682bTEYoZ0QgF6X-m5hTaCTJB9v0AB0u4O7oSO7ze6_YRExC7xyLLmlT5LW6ulf5R7WAlPAkDblKjmbQ", http_request_error; e_proxy="AcTM-mP6NsEapxAIpkZQmvwi8CsZqbmdCxIfj5s2NjVjy1IS0pDG_3aCRl496VyIMy2RWasjJVG8SpU"; e_fb_twtaskhandle="AcSXYHUMxgJjM0mCcsmG2BDrMM4v3L6QfSCAw7WyHsg4VkGS3OZLHbBRLiOt0S_PuHiaKL--0PMQ9iU7eskSnbyqiM1kYzvJXw"; e_upip="AcSXZZA8GPNHnFtJQNgIU_qq-H9Orb3cNopS4jmlkKuLSCL89l4zW8RN6lSrc7IApW-og8xY4YhSmoTISPNPRYGLEuJJkHz_zlE"; e_fb_zone="AcS46NbO-6dnMoZTZMHopg0OSrfZhjtKhxca-P69ct_sb0KstB7VeNOjp1g3pg"; e_clientaddr="AcSV-Je9W_tViMvby81pMxoHNTP5YaY_mX-OqMyJoHGqxLoPXSGau1HIGZFPeixXBSKWG2YzFlk2ym2JC7Q"; e_fb_vipaddr="AcSUq9gXp-DcVJsOkIP0V5HF2Arsd9DBOLGG-CIy9WNGYwKBU8XEP84yZ-gIjGKrGr7sBTSYvw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=13, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=815, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-06\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-07T16:00:01.682Z'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-07T16:00:01.683Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-07\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 337112125,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 676041,
        Symbol(triggerId): 676039,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 07-Jul-26 08:59:31 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A4b_2AQ6x1aqjBQKcRQFe22',
      'x-fb-trace-id': 'Gn3yxQk/1Wp',
      'x-fb-rev': '1042748676',
      'x-fb-debug': 'IYUdJuOk4KUD9gNxPI1PAULL6IO2LROjjkfoW2+NjQbn7y8W+UoTUft8OAeL3bpfXH5bMRniv8IEh9jgHD2C1A==',
      date: 'Tue, 07 Jul 2026 15:59:31 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQK1Q3umN991vlOwwIuIm3pSpAEOO8fL2_RdFRn3A7tH57e8-y7V1r3qgkkc7pOm7-0CnLxKBY_qJ-Jz5cv"; e_fb_twtaskhandle="AcToJ4PGVESnSmgCUEQn-iHOLQh-sy-QAdAGOzu959HRUEabWRdRyPuAYqclX8sovSNxWauaULg4NjFdAxfaOteQdXR2NOySTpuMsBICZoSn7g"; e_upip="AcQmnVlRRgRZ0OnXcVT8cgKxJcnJFKee6oQfDsf10LDY0VBekYHh1Ogm2mET0OnHEOMHr3k2mkkbm7HU0CcnZHnMe8XcnvspNAuHaiBlo7E"; e_fb_zone="AcSV9ppsSSsGFTQoFytFSrJzB94hWgtEiLnIvkSCKQ_kSjuhi5ajnpTvBlIkiI8l"; e_clientaddr="AcR459L_vH9j_aZwTEw5odmtKOD4ZZ5hiRgrdzIPE7HuyUJphwnNtBk4NgMxGN5RjvR6_-4Hjb1s6F9MCDNBVeRtbjzXKwROqHaXlV6K0ONIRECbPg"; e_fb_vipaddr="AcQQiTctrfO_IQRk0eK82Let_e4oo6dAUUrVDLvmKeuiY0Jc-n_xt_FbH3bNzenqITEwUHvPvZ-HT4taITwJr6MkIiMJozQn-8c", http_request_error; e_proxy="AcQYWqUTR0KoGaoc_MGYJDfZCP6OQcDnSh7XG-1wsvN_WqUb5nS5euuc9NpIVA1ghZNWI35rOA-nnLU"; e_fb_twtaskhandle="AcQkC3LvSAXy-Xn87zXR9bU6FkK6eYHF2wTDt55lgosvJLMFA4auueBequcCaSWyXSIazUwFwBtmsWRbq3WIWVxXgXjtA3TBUeb8"; e_upip="AcRwarXauyFOHMrf1_yPOtxcLW29IdXuuXCthZYCh-UaLgbKXc4Y_ztnH0OH3if4k4qQ1yA1a44OSL7EP-kNDwIA3T8LYx-WHnI"; e_fb_zone="AcSxmkVAUfjaK0B0kL0WKBvF00tA52gk62XgFU9B_4rtb9-iWXborNyyJ65ojg"; e_clientaddr="AcT_Abbp4QNmfwcwZS3HQMfiQboR5pfC4ss93D9XgNBbMJYXFpbdqb66ca5fk8ni2LzJibF9jhYlUgvADOc"; e_fb_vipaddr="AcTJhR1iun5fVEGqO3Bmjc8K6eGZkj_TFw63V8oisETRp9BoIptCAfb8TQ67XXUR1Tl-R0PrPQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=730, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-07\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-07\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 699815972,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1432682,
        Symbol(triggerId): 1432680,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 07-Jul-26 08:59:31 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'Awodg1FfstMui2X0nXoEhHq',
      'x-fb-trace-id': 'CCnIgV0f/au',
      'x-fb-rev': '1042748676',
      'x-fb-debug': 'rlBbaKCW1mcoSjDLz5kGH8SygU4tmGpnPTjk61rFHx1T9sXT/KNlFlzzycpryRC6XYVZ2nUdqyCKcjQfF07EzA==',
      date: 'Tue, 07 Jul 2026 15:59:31 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTffyFA5lx0I1wKtUPPk3xpM8bNp0BOuda4HZq_W98UU4qeVPqrtgvVJ_-YihCdJU-hX7iHRH9Kl6lhHIDe"; e_fb_twtaskhandle="AcTLPsAIzSkGPVQsyH2UP5NMHq9xZkwaHGSjKSu_iHgZQJnV_c3jbSoLHdAIXhO7QnaftI-hLXFfomxq90GoAkNoEwQCyioUtv8u4Dy-tKiHCk0"; e_upip="AcQTkJZiKey3luJqoJDr6lJlBAR0kAxQ3o0A0GMUEjz1srz_cXAxfBOJ_ezKk3EsFQyjrdlvh_bg_R9DuJ579Z87oeuSEfe7Fuo9Kc5VJuo"; e_fb_zone="AcRGLiInNmvU8paNbRErBQq7_Lmg28u0nFp-wg-PinNV2K3fqmzU8Zhyj-oPMx4G"; e_clientaddr="AcTNnjKGQIdOuIgjzje_aY2XW7XFWNStLOl99Yj07KwXLmGu5oe1OZGvAIyVI_hFuA1UM8X02xJ44BZhhYtFS2MBQoGA5g-cqM7Mis74MBkzx1HY6g"; e_fb_vipaddr="AcRgM0Vpdsa00TbZcsIQHMKb-Js7kkJ6UuQpYMoZ5x7bKqlz-UqXgGZLUVoq4Cg7C6EW_hTwBPKPfcCw45SA3Tv5KZeKic6xkZQ", http_request_error; e_proxy="AcS7sCkordj24CPP7HBdx8dysqDFS4HaM3FsPho7wc0YywMJ7Gx7LsyIoIizl3VeVOqAjhY2iQgd_PU"; e_fb_twtaskhandle="AcTpXATGibZwPou7ecrfpq_8u3VOEuHncAfPNyBr6pr1TpMj2qs5SpEYUFC5bZJwRyGvXs48KA6wHEovirvuj6uWHaa4ALtR-0U"; e_upip="AcSAxJgz3AcPFsF4tWrOtKcQ4YQDg_Ya-d7TZCq2wyYHpABkYNvY3bTrEEAlBtsUK90yi4OKMF8Vo-3yMfpkFg9-otWxpuXyxIU"; e_fb_zone="AcS21116kr_WIkyaYHHaqJWYkJJImUz2bBGr4-RCEfACI5a9rxYd3lu-qtFVrw"; e_clientaddr="AcQoRAmYFG6bl4scFLI-sz2rtGXhc-Cs2fG_nLnSaBPWmdMzWd6LplAbl4IvC4mtJSn0bbOQGclN7ontJ1g"; e_fb_vipaddr="AcR8BeABIuTQp7KaHPJyAHCb8eYnIxRGwjNAIqL3uMeBui23jn4qpUq6Ldb42BDROfGVDa49YA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=13, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=809, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-07\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-08T16:00:01.345Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-08\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 786215635,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1607546,
        Symbol(triggerId): 1607544,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 08-Jul-26 08:59:30 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AaGYuDI1n5v19Pp-ivIDKEH',
      'x-fb-trace-id': 'B+d0ToI1ygz',
      'x-fb-rev': '1042833424',
      'x-fb-debug': '7+tZ/uhH6uuTJjFYAKeSVMlp1jRhxWKqKgsrJxzI340p9FQgBS0s1JX2RMlXna9EN/1Hs7wCHF/ZjzCvC9yOww==',
      date: 'Wed, 08 Jul 2026 15:59:30 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRP9oqBD8joUFHbF-MHcEHdbj9BC8gr67q8zi_sLWfpFf8yTh02lLelPIQRY8WIoCGFQBlrNMzcV-VCfg6lnA"; e_fb_twtaskhandle="AcTgrpADZjYRKYX9HWeuvy-fpAXJp7j3MSr2CK5m7j8XUDcAGmZ6MisfBQXDul3EKxc6v9DijLTNCJRc2a6tBS7ocvZhGcLN-2C_P1aMLM1WhD8"; e_upip="AcQPSXbLN5h9bOB4lIIgvlM6WIDuVIJIPvZk041eWV99ZfJuYwf4tDmQ5MOXBp11sRtim-9PDreV5IS28ysHDolfq2VjOlw1_U3SRQrCAw"; e_fb_zone="AcSl1GcUQPxUSEFZzM2Fq9HZ2gC-0mo9_PVqW8ToSq8dGd9g1Uld9siy8LpmHGHx"; e_clientaddr="AcRLGWF4Pi9lltIIjnvrw9eMwpJLqWM7CO3yhvGg0Xcq1zKi1QetgVXMzS1FSdw8hlUc-h2ukL7neAKRtib3VPqXgA8JgUyoFzcvMD3kjAD4fc4PiQ"; e_fb_vipaddr="AcRRNSHAFvw6DM55lPhvBalNHBDjTWMi0XKlsE9x6UUBF8L27Xzl0sQqHct9qBjIlTQc-fQFyyAg4n31xoEyNXuyPHo5ITpGsoM", http_request_error; e_proxy="AcRJzkPcvqBWJXgSBu-1b9m0r5_JhrgBfBFqkQpr82ghsG6nprh_a6j2u3DUOb1edUy6Uf5PVVyviPE"; e_fb_twtaskhandle="AcTCZrMhxEf0wbi3BGIO_7S4Sa7I_Ggrm2VuLFq9hyDhOiEmxC3MI79Y2q1C8ecTDUg5ULMVi0NiQqISc9F32-cHF8rRy3gol2kR"; e_upip="AcSNgPp_IqibM3ldMqXH1tY9C_0KCNIDplLJdz_euxC8ink_u0nj5fymM7U6Y8uQ46iwk7OHbOcpqwCV4yrsfr-uAMOTpXbF_Go"; e_fb_zone="AcRJZHRr3zxBGQYdz3iavGoAf93-sBBa6L1ARp7Em4lpIjPI6Yd2eygj2j-wPQ"; e_clientaddr="AcRcItlKU0zGqPJP5ZPvdK3itFqz_h-Wgk44GeOmOu5d8TIyfZR4w6AgYxdMHnGbYDbJliWccAJmw3J_aaI"; e_fb_vipaddr="AcTurM-tWMc6PCsvCxhc4OEeruHYDW7PQlcr60Rw6hWCimLMhrWs3Ehr8vY0Bw0Uo9o9CGMBrg"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=812, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-08\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-08T16:00:01.373Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-08\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 423511816,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 849043,
        Symbol(triggerId): 849041,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 08-Jul-26 08:59:30 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A8oPg8lcRaCq1UVBbs3aJdq',
      'x-fb-trace-id': 'D3tnOpB6j7m',
      'x-fb-rev': '1042833424',
      'x-fb-debug': 'm53k7mL24J44+BQanwP+lBpSxGvqWeom1ia5+Rtbf2/v5BEPjYG+yYNqE6rjhimzRURukmVnac5hWgV6s/L/0g==',
      date: 'Wed, 08 Jul 2026 15:59:30 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRmB-1KylQJuB2VsbuZiK83WhvrxKZ11K9EyXRJ8iu0UsRI77aac-hen3iE28bDASIQaNnp8njZYoO0XG_n"; e_fb_twtaskhandle="AcQNnokil4rlAknLEgi-77icck3AciNOljA0ljDA9xkFInaqkAErSdF8Q8tvvbDC3STsWKK12JZ2dBGYtBOvGHagwGF7VJpP9n38ESG1jKsqTw"; e_upip="AcRfvT0RuAQ-MwuwrLUTLwC4xcd1aZBz3GVu4SmmaTrY7K4xKc08-H1apZeTLIm-rSm0KXWtwmaSUKxjIKFaX_-7qj6jn1pW9m2fhhVUxVs"; e_fb_zone="AcSpXid-yrP8Hjyip6av8DCJSbsHzXxu-DyHaVsagdzYsMkY4582LnhgO5eC9FCG"; e_clientaddr="AcTsErs0IZqGowBlJ8g82rMGcee19q1d7FMzx3Nud_YzYxn9zsK9XORQjsZebXNphEKXgFMyEMFdiw3NZMSxtctUW8tr-dvK60R5gn_pSTd2UXQF"; e_fb_vipaddr="AcQQoosNCvY6756uysMdQ6MMl7C-x6KyM85M-WI_K1w5W9Boiy-JxV8SAYOS5tporOQz9z48l3zYXxRPei8F78ed_Ta09UrHWgg", http_request_error; e_proxy="AcQqjTbTiSgUAKu-zQRzPp1mw7breo-7R7m8-5ncoNowAEkM55vHvz1YR63sps5q4d1Bjh_SP1LfY3Q"; e_fb_twtaskhandle="AcQyh1EopEIv6LQLXdTakgyn45YYhWGPBnayzj7JFWDPnc7hpoMArL-SYvuDsrxeiF-XKE_MKxGb3_wI--hio7ANRvJ9FbUufp0"; e_upip="AcRThc7_imbkajUp08wowwK2dd3_OROVjETzMrrrdQ1ilVmjIkPf7fO1SyIHa_QH-NJh4UhfooVmRH-OnMxTD4D27m3_sKzH4bI"; e_fb_zone="AcSNHlBbyZhRlPI2kWx2ZoDizJUj8pxiiFkcJQHtSp9ijQRa3uxgzR3fGRrH4g"; e_clientaddr="AcR2BzSERqVl27WddAp4IVq1BqevgsHBgfvLJbSZX58Mjm1kziNx49yGN5dU_tQuAN5HI9QYSRDG5e_b2eI"; e_fb_vipaddr="AcTQdCE0eVSxK0vPEP0983xLnIlupvKXQMU-w2_KKBbnShJcj8ZNYA2Vi9QAVdmdW1Gie1iWYw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=753, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-08\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-09T16:00:00.957Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-09\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 872615247,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1780726,
        Symbol(triggerId): 1780724,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 09-Jul-26 08:59:28 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A4sw4Cp5q8R_XWmSjIf5754',
      'x-fb-trace-id': 'BdICrxweYOC',
      'x-fb-rev': '1042903797',
      'x-fb-debug': '/oesXgJVC/agM2cBzxl/TTu3mHKPK6/wUIoLb72R0XHEIseIO1yaUZ51otydrx17I178kgvtmEWkEnjrNwHiJw==',
      date: 'Thu, 09 Jul 2026 15:59:28 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSagKDqP4XFhJSbQ9gWh4uBqQKZRX3rFB8U5m5WcdEbGI9jyNDlNlOcNoKj3owbrVPmuAEGqJ3snbqyjbbh"; e_fb_twtaskhandle="AcSF5KPwXAZ4owIpIB7vVeiaKNVo2rIln60yBtR0ZekT3qivJA9ToN2fjSq5xy4ibshjdVSFNWH8oS1IUHLKWNp86R42Tg0G2lojAzmULe2ZRFY"; e_upip="AcTqIkaTTNDjfyPTswg5WgxfDx7nwsE-s7yV7vIlAon3rPzniHdR95JkxRr0-Fxrc-zpZc0MJQmhZhGRpI4Vp6huzoY0sckwAAjW-Sakido"; e_fb_zone="AcTjt3FUPaSfq-ZMIMyOY6llSAQWUPDVy4uiC42--URVAIIeZkprx3H4Nl-9D1Kw"; e_clientaddr="AcSoprenmxJXOYtibFA6Sd1icXGWz49z8_37ABItTNFsC3ks3nbsFzpzTTClkY0lAop7AeRHmiIGUnmXd5qnzfIeNHVCgvNA42U3-hoUEUAopMQf9Q"; e_fb_vipaddr="AcT61kCJucb3lJzbPNhENtrdN65z3u5RRii_J6RnQ17Vr0pjyUM7fxLPmVF7Ty6aLQ5kK4dXuVYovfOsuU996grZNloeJUtU-wM", http_request_error; e_proxy="AcSysC0rhi4jqFM40899RBxGpOVWQiKgCPwovyIpbzgI1g2QgphWsIsRWCq0Ct4T32COK3iFLJ5zT1Q"; e_fb_twtaskhandle="AcS5015hx7RmgahWoXAmxaSGjB75P9XsglAQ-XlSxcupPqmTyZBJt6eLQ5dSlyTapNCaj-bf-j88PuCzhtSPSgktk_M1F6IZNgM"; e_upip="AcSZjbUKlvBRvxuLA-vGJfuEgayiuo5b3Q8htKVdnTjmKc2cutvN5hftMlsnsF2D7PQ9zktdYrxMRNygfUlsXm6nrZa_bttg9xU"; e_fb_zone="AcTO7axYB313iuXbmRT2W6omemviWd3qYCMAOOCWKKpnAcz-phEfIOOFI-Y-ag"; e_clientaddr="AcTc4uN-ykxNxu_rMfMQj9qL51uWeNVOPpQ0Z3JNOaqBp9YCbBLArGDieVsY4gyyIPkrfcLzAfbOlvMKIEQ"; e_fb_vipaddr="AcRF-zYkJfQJ-_rxaBc-zaQV5reDy0LBjDgTczhUsyKq-WALEODPOFy2N8jVkC7lS3srbN3emg"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=794, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-09\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-09T16:00:00.965Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-09\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 509911408,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1022047,
        Symbol(triggerId): 1022045,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 09-Jul-26 08:59:28 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AB_0IcqWQ8rTtMCIkhTMyYa',
      'x-fb-trace-id': 'AFwY81X6mYv',
      'x-fb-rev': '1042903797',
      'x-fb-debug': 'EvtlMIdZoRhr3T5OOPRYfKektm4WEZSkE+zPXpS/PNBE7TJeLUMpWUNwTJwvFFV7vuq5gjP2KL9y7rhpNfvOUA==',
      date: 'Thu, 09 Jul 2026 15:59:28 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQsxXi3lusxuVUQG763mXJL_L6Gqj9lSTQjFUDBQk_wdc-LyFmy9MAiQbLoZ0geqvoxIEnIuGWpddPD1A6O"; e_fb_twtaskhandle="AcSOA-MaAeKQKKYbgMOKxNhfQL-iSZsNvzk84umA0X3LCh6miNNbu7Ko48yldXgyX3-HwIKUw6c1ewKiynzmyGLCedRMHi2PmtENnaUY2R-D"; e_upip="AcSQzND0WwDyQZ53mV-BqAj8gto44cSZ2V0QGr6tD4hLLa91gPUWClWPY3XgFzvsqza7A9VAzu7kus5jR7I3v_MeSQWmw1VJrOPjD1hXOkQ"; e_fb_zone="AcRtf_4kYrS6TZNCo1HA3qOsVzMVe9_9UvyKTKMv2dJpwvkQvXTRPeqihkqFUFHv"; e_clientaddr="AcTeGWkA8TdfJcIktcA4sGDFNYUvifyKL6AGmCAhwYdiDkKezYw39-GfCmofpWJNC2a0ml3P02PhSwRV46l38YUvjodCOnTkSEWO2MtmlIpTjt7qOQ"; e_fb_vipaddr="AcTbKH3G2kB1opN1HHMUfmKW4pGWcJCVNo3le-y5l7kQ7sVNYdGem-n_IIG8qIKMAEE1ecjtCJOXuZngfT5H-rGeF_rv4MwZ6EU", http_request_error; e_proxy="AcSU8q77wFHTqk1w47mq4UYVLXGpDjPiYY68uUPuGoKJTGLn3h8VBmdkD6VbU4jWZAbwm-1SE6mxmLw"; e_fb_twtaskhandle="AcSYeYuA7vycpqlGSKN-XHDPaRMxdQkpe7lPqN3oN0YPxS_UAVz5CPUTRwF8lbbZO71M6aCtYI4kPHV8M1MDue8gnczIxPgjW9Eb"; e_upip="AcQFRSY0HhmsbwLJ3rWgrOSSYmOPds8G6KJKdVyrzBTwUORkNOyURlq2JCoexAY65yyIndOsjq3pZbxlzQMCU3pl62QUj5bvZKw"; e_fb_zone="AcQv4kjzXVlODhxVEFlEiq6wE1Tt06CY4FyhGcmf5fSipdBcKagW4-tbqoIggQ"; e_clientaddr="AcSVObjNbztm2kG7m1ppl8d2JPcy2bj8mEVQDrwhHAzszTkeuVdmNgbMRsH9Uvd7-WDVgjDZxQeJlNzsQek"; e_fb_vipaddr="AcSbrczVPlsLRSXeRBwP_d-4VL_RlME6SUgh1SJyEWQk9ci07qsui7LXaJMchJ0kKbMx9omu-A"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=13, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=695, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-09\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-10T16:00:01.089Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-10\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 959015378,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1953842,
        Symbol(triggerId): 1953840,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 10-Jul-26 08:59:27 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AU-qS3F8DP74uq2vADaj-4p',
      'x-fb-trace-id': 'E+UyO/6idm5',
      'x-fb-rev': '1042965649',
      'x-fb-debug': 'dTkz0UTVZZTAw12IoiQYtdac3nyZJ6GLabpkSQqlMJGuxYjNgj/7Lopz9v6urEqiBqrkLL3mz8dMYK9eGSkeEg==',
      date: 'Fri, 10 Jul 2026 15:59:27 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRNSzn28UxzAWKAlYdUdMEhLz06I26x2kP5EcSMsZWtCE5EN1aYsBzjt7fHMUIJcFWGtzjR1CH36aeK-JoO"; e_fb_twtaskhandle="AcTj0JFA2xfAxGOAVAIE3qHMRfcQtnuvF1dCZuMlghlhqtCbqJaPweWzQAWCbS7Qk9lAzF_YaUCr4dxWmc0gwQiNIPAm_JW0PbUuuZ2aLhrpWQ"; e_upip="AcTlNEKhkfsq5BnEexCy98zcaPjqfXvZTP7ZyWL5CfP_iCUY0WRoAsIIEvY9FNTN2S7DRJzsptI8vt9bJ-IkXUwEc2lCd5T-1y-Fec27zQ"; e_fb_zone="AcTkJzcQ7kTTdoRaWBTusjJaGiZSLqE8innyHYSfefNFuiowc9faBJCQQBKVCct2"; e_clientaddr="AcRRFMEBHKkiI2b_ZJeWEjkTgob05JSf_ZwlAxbReKS0MZIapPJPHMyz5mwr31XCV3KQFmZWocxBaBlI-WX3QszTBSS97a7M4sck4yZE1Jc3vumthg"; e_fb_vipaddr="AcTToKhHQWQHNl8Q4pgWll0AZLpVeZguqrNJlEggnap1zuHmNAgACFr1x5Y8YiR6sWNlWn_Ac8eSSbzlK2E-tgoMf3vbX7j-X1o", http_request_error; e_proxy="AcRx2oVD3cvQrVN_ioVfbw59YPuwfdE9HcVf2PcB9Qu2wZBs9ZwrlXA1u0ezW3bAsATOCjwciDDJjN4"; e_fb_twtaskhandle="AcTQCB78MkSB7hHHP1pQ6KR3J0FEfujMOFdrbuCsYFVRCUF1S0Nnq6JD-voznCE5oNwSVN8T-7EaVHMUxCMrfObkcKjhKxvmWPWO"; e_upip="AcQeJhKT83mO_d8cJRMLLLSqqdq56mgYsBFYs6w1QgjLgsLBma2u5i-68v2D_n3Q4-wE71rC9Qj-7sEjzgbI8RnAQ7_po5uzNCk"; e_fb_zone="AcS7Hy4NPhwHXfoXUqVJU9Zl4cimQxddAKZpNw-vS-RRA26DLks8WgQoU27BsA"; e_clientaddr="AcTIXKIthtvrYHQppfTqmIXvCICkC75l3YSDLJH8Ix0T6FRblmhnPRSD05FqL8KoE7NwBRNHkAfRg_V_4CY"; e_fb_vipaddr="AcQ5v03RSdm_OAUT1dQYDlMPxXyryq3PRH763ZPOgnJM247VO8xkTaj6lRY5Rb2RH0I4oMnPsA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=14, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=760, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-10\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-10T16:00:01.125Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-10\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 596311568,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1195051,
        Symbol(triggerId): 1195049,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 10-Jul-26 08:59:27 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AfS3q8k7boMgwui2x_BFshB',
      'x-fb-trace-id': 'AgJ55L1YjCH',
      'x-fb-rev': '1042965649',
      'x-fb-debug': 'XAkfcxe49UVGlqKWLGfmFjO6sQM0pdV3zqSSs6y0o3+8AcSsR4QrbDU9oCUk8qae9WjSmFOunIb3Dx5ZKs/mIA==',
      date: 'Fri, 10 Jul 2026 15:59:27 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQjRrRqzPyCSXrkg756rG48hH9-2xtCwJBc_HZ8LNWqgkVv1FsHVQhxT-q59kP2jUUeqMfhpAoEMm17cntf"; e_fb_twtaskhandle="AcQ54ch1U6QGjVN-vRh-FXEw3LBLOVWTn5aMx9YPlihdTMDucCzrj7y1vPLKjS0dxKNJdfoi8tIIBeGgs6qvnBk9j13NP34d4TOciDLARxwib9M"; e_upip="AcSkH-jF_Cz62DMOL6biJD9C8bug4FbgUAJ6BKOXh-vMl07HaDgZ01k5RbBsVTGmmyS2Yl63Sepunzqe-dbpOzFKLKOpMLJb1kfHNOJqj1I"; e_fb_zone="AcTo3386UhWbtVesOhaKciikO7u2xQov0FbqTVsgURhSf2tJ3HmCIFofoBsKdq5w"; e_clientaddr="AcTFbG_JFh_PSp4n_HT319_PRRlUG4ERFSqD_XNCS37LCWqCYKEEgTQQCZpR_AnZj14aC8CS303BKypZW_PLLPmqUO42pIxYG-ktz-hR2qlvCgpSvA"; e_fb_vipaddr="AcTw6Iciqh-xts0LIph6Y2i3yxoWlhRzR5Fq2Zx_KHx5EWsWJP_bNQWjRbcBuHFmCHyEp3uMcwcR6xP2zQbb0TckAc4vtqIRE1E", http_request_error; e_proxy="AcRdXxfV4192hgIqITh4m_W08q7iAPjMxexOORfnXcAe6AbWnOZgdtqaMMCJfEI9Uga-oShnqYCpXRM"; e_fb_twtaskhandle="AcRGeFPHXpmj9fVoWMEYl27P6NKSIRu113tX4H4zKUp56M6CAuPkn3OoZwduVow2jJKwjp82u9ctKryd9w_KOUtCUZQ0xMziS2t0"; e_upip="AcQ5TKLXt0dNm5g7pQj7G4LEOHbkkv3OQlrZNOCBf47bL-vhdKfA7zGzgC7p8rTza97Ds752MitaR2y0BTwdDvjRytX7h3idklU"; e_fb_zone="AcT2mB5ZNj5CsS8TRa_RbHm_5AsxMms5sJT83pUna-KuW5sn_xbU0wq32te71Q"; e_clientaddr="AcTbK9sc23w72xNBnCY5n_NWW9FbEP6AxIxOoHCXw-HBy2VhtCyNT8wuzUFvSxjCA3hWUcJgkJywgmwGnbY"; e_fb_vipaddr="AcS9zfH3X2LoTO6Zm6vMSDQiat69Nw36erLXW_oEwjx6k7mCA0s6r_vgyCNEbbd1GsefXQ-c4A"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=14, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=702, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-10\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-11T16:00:01.690Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-11\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1045415979,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2126951,
        Symbol(triggerId): 2126949,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 11-Jul-26 08:59:26 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A1_iDvBq6tlRzmXW6vvJ3Yk',
      'x-fb-trace-id': 'BTCULri25/b',
      'x-fb-rev': '1043019854',
      'x-fb-debug': 'svonjMA55dB8cM4C9tsrGFf8dfxKYtAa/xJTSWUD9EwcKAUw7blQ+YTKUEKw4dKzDZcdCBuGuEsugavpiioYRw==',
      date: 'Sat, 11 Jul 2026 15:59:26 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSYlQBpCdvR4CyiQs0d_k4wiNhiHIgZvcyOjmXxNMgfVu5HC_UqGw_DBeMN8O8dN_qsA0lTX0oJHOWcFfXi"; e_fb_twtaskhandle="AcTJ8SXzWf7m6A0-G3wD2mBfhpuuAH2ZDspFxBbI-uAzZDdqIu5nrjDV9BnQllrIepNGcmdTiRoSURyoq2ISA07CSx1DSm6x6e1-C8HuHu6yGaM"; e_upip="AcTBRfKnWUKuSXPH7fx5OArx2uH5TSoknONGgaQJFZwOYECElM6k9wXQMzvWEQkdtLETiIHFaOhAo0nr39RIQftxGM83-Mw8kOQDbXgdQkg"; e_fb_zone="AcThz6mC0vJ46YSUPs2u1F33KAtATYGnEvR_stZ7JR25Q9KXoJ13r7ncZVHUM848"; e_clientaddr="AcRLoUmqT2K5yc_HFuYHZQsZp-FPwSKAagfjK25WS15K1q_o7CFoqbzmX764NqWsqqsKwthzdk1z8d0EUAV6y2HqiAvTt97n-69w5XGCPE8TS5pmdg"; e_fb_vipaddr="AcTgS_SM8fXIkaQK6vGzBdpKztJ5Gb5Xj-oAOEVB84MXTD8_zGAoAzvK8LplrZfLO1Ivg5VGj54ceYdl1EYKGB12zCj7OnNUuc0", http_request_error; e_proxy="AcRuOOjfnc7W5L1-Tp8A8uP9hWhb6FMGeSjwYacIw5YnEOpyJmHB0IsNmAEaZ7ZkQEhwEKptzf1uUf0"; e_fb_twtaskhandle="AcRypUX5fp6juogkaFc26vGYzX76aoj-V_Fi0ENzN2dQarTLm3ceK9JoxQz3JOFMK2AYvOW7zQ63jzgJVBocijbSLo1pnrw0ivbN"; e_upip="AcQsxElXCFQa_niSURNceHcEYhIhIXEqvx1yB13u9zkN9EkkE6RDHtVrU4kOqpFenfAjoo_6qszlZjBCVgyuDhUzh1LO0ycl8DI"; e_fb_zone="AcQeoPByU6JWNTa7UEoFPpc9LIor9srzzOmkBRtkm0wIqCeEbYB48WeOCMQAgQ"; e_clientaddr="AcSCljl3d45iJ6woh3sHYJmw2nf1cbwnrzBO-4fyJYcGS3xTBFyXhJsH6yKT_yRmjYZVQqHfjUa1OONiHSM"; e_fb_vipaddr="AcTVSv2obc64uzInZg_PlC6_LDodMEaRb0tepvyTJ3I2AOVG7ljJoBFl4KKX_oUakA-Q5dYgOQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=726, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-11\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-11T16:00:01.751Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-11\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 682712194,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1368032,
        Symbol(triggerId): 1368030,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 11-Jul-26 08:59:26 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AftFsZg5UKljQdjRALSiZVf',
      'x-fb-trace-id': 'B/pe8Uhq0Tg',
      'x-fb-rev': '1043020865',
      'x-fb-debug': 'd4Ix1vuTwGlD/9NSUwWZCp5D/dvp0r6qPvOMFBwoth0pRotk0Fd747Y6dVPu8wEaSNATL5o3qLpD99gBQMCUaQ==',
      date: 'Sat, 11 Jul 2026 15:59:26 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTDg0flVqyTIg2C8EoI4v3zStFLjT4Gi_--jTi7LQ4GHVxnKrFegYqIpA3_eFSZCSS3z1w2ziiyJ7pwauiH"; e_fb_twtaskhandle="AcTonOA0ba9aa8-KdpOF_nnUpRtQnEzYkZ7jiXdncF7DEpdZOmCRqw_POg6gGQlkpm-eUCOcPVGhDshZYkRwB9UbCgcukaKsbtsy3uYZ6xwmb6g"; e_upip="AcRFzQ196y1U_f1dEI94uL7FS9SzAwMQq_POVALwRCQmuOUvKpQeUi5csElapzqoxvabgbn6M6NAHAmyBZ7M2jCvj2-4iG2OXdqrAJZzITw"; e_fb_zone="AcShbTOYBI5JmBx5N4yoPvNar9WvK-WFEho_J0GSm426HhQSXNi3JzFimDr5sqf3"; e_clientaddr="AcQ0xkPz5nUVqEC-5Q4Jqn8-wcJWD3DCGNYBwokSjqMoS6ufC0-Ls1EvWppkBngmePVDdUIdyAGpEtxBBNi3pmiRyZsE0PK1eUQKenWSQNZEThKTbg"; e_fb_vipaddr="AcQQWxfUJIl9A6t5Ac-NhLJZKQtqieXopHr9V4jMjPe8faT76RuPWf9-osIT9AY_bXVG4KE__uD2f-EJeMTl1LAKO0Koob-IAvA", http_request_error; e_proxy="AcSikJLZ1D4SvtlxpCXHTvg9lZzMAygMuDuDbcv9cm28hMIDu6wDmS5ZfEzCoBe3YVpbOmxKJ4cCZLM"; e_fb_twtaskhandle="AcTo5wQ2_ISniuk4UOcDGtOtuTF-NXeWJH-KdrhxjYlUTxJWQBVnzgCjalPNH1hsm5xuDluX014E9WrVjYmsyCnGdevLsCrGBBlS"; e_upip="AcSFRbf4LOcK7jK0udDNBAOXHIH1YMNok06DTeOZucbjnnk1bX8_PqoRQPBMRtHvEIVeBamE5oeaxjPBQ5Wj4LEA66QaqknKaqE"; e_fb_zone="AcTYMBiGWRyyR41Cfjy4stirklv1HuDO4_S2nuoLfHYU6Y5apsnjAwlF5AbkNw"; e_clientaddr="AcQV-3u4RDpRv1bt5lfKro-KyVJMernTwyRrWIa4vnmOS2E2WwYY91b-lnQ5eOfW47wEeAwh5YHf-JSR9i8"; e_fb_vipaddr="AcQ1pmqSTZdcqD2SbuWohMPydzvU4XBCEuj2T8J1OJy39yKbyatbp4G-AOqwPwnV9nBeJ050FQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=703, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-11\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-12T16:00:01.299Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-12\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1131850747,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2300213,
        Symbol(triggerId): 2300211,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 12-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AE-Od4c2rQ-diH4kzZ6R2eI',
      'x-fb-trace-id': 'CsBTfVfJpMl',
      'x-fb-rev': '1043034793',
      'x-fb-debug': 'hMF+Up7wE9KRqHY4eh0+n0CtS/dUYuBymPgnHzSSV/rWtNAu+LUhTE0rJUstNv7DRykOhdrfArhXCiz0P9vZag==',
      date: 'Sun, 12 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTQbs2J8k8DEJf_STz0SVOB97qlbpno4R_VkkbG-q8tBpDOfkWjfVRW_ub-5KOo79JqXcQ5w9tgeyVYxzN5"; e_fb_twtaskhandle="AcQ6ohn8FLqo689rYpmMGWGw9WbBkeh-WTsvJuiX95dHKNgJwWaznRbKyTvmK4cKO_z6Z2H9SEMKnFgigTglrnuj4T6pDUvTwTQNS2loTpfu"; e_upip="AcQVJ1xa3WUO7ZTxKQ9KNavKW_geGoc3IysQfERmF-vuUuJUCr8hpeJrXfykjY3UofxyodYfvZaolYc-0U6K2jJxppkNC_XuSVog64Q2JT0"; e_fb_zone="AcRoQP_So3f7OMfyQJKK1XwoGNm-2Wdf8w6SAouUkssINLqdK6PA6up2tXTsqvVJ"; e_clientaddr="AcSaQ55gPTgExVlV9w4S1OQscxr2s6Yi6VNWGSfFl6K4Qr5esEos3BeK9ImQguGruXeL0lXmHsueD3oLC_llSARo4iH5MYFY-6Sql4Hz3qZjUyHr"; e_fb_vipaddr="AcSYEHhzwMv_Mkexx2SDagDw8Btedjv9VHt9YxqDdc6-raq37XRqc5hR3T3Q5ODwoFfPRWt8BcC-aqfZcl108aP69Hl66WWUgiQ", http_request_error; e_proxy="AcRzwcsXzR3IfsyyFIR7kVKi-bHrg54-YHQRbyF2iYh-csOlGl-sKULhGxZFKxkHzaOlk5zoaSIAkGw"; e_fb_twtaskhandle="AcR_MrEsRUg9NKGkHW_sx-FscDElFmFbkS9cNG4e9tnm7ldiAjxMeE1tg1fopmJork1ODcJBYxRyOqbQg0Svl8GIb5xXRvOq03bO"; e_upip="AcTY5kYB87kJhhV2_CjiLyzBjaek8tfxuo1qmPiGhYEWU6w2y9yUbVUtJyhQu52CnkBCAClS0U6DYe762PcY-SYOiOQSMc6YSEk"; e_fb_zone="AcQ3iOt8nXLyC1SP1d8nzV187oG2KuaeSHpZXl6P5yJMNoCVKuWjU76enF9dmg"; e_clientaddr="AcSByvFGPpSUfwMViJn5ZyhtUu8Jz7fRdfOusfJqmhq1ElX_TAWZOPgcBpk07Jow6gLRYkEhngijE8uhy5s"; e_fb_vipaddr="AcQWgkSn9iV8dNCDOJW2MCrpld5slIJBta451_aI5Je3IHlpfd7-Nb2DJmGEjkXNvtilTZui7A"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=794, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-12\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-12T16:00:01.300Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-12\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 769146902,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1541085,
        Symbol(triggerId): 1541083,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 12-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'Ag_nMSmbQsaggt_wlDNx3Xh',
      'x-fb-trace-id': 'Hqxr+QY+t1w',
      'x-fb-rev': '1043034793',
      'x-fb-debug': 'C1BtXP8ELYcPtRry77TsiCvLG5x6jrmR63B2j8tNQbP2KRdXyHwN0caBSDdm4aYutJbgZFeL/N4RDbuNpIhEvg==',
      date: 'Sun, 12 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRH3BwKr83WtIgxxqxQSqswAlJw_tJrovTtBIvJk_FR7raOPjuGweoYDJfkWRIqTphjx62c6316ramBiRox"; e_fb_twtaskhandle="AcQiwuVW7ZRNU9LKzxU4axsHygNL7FxP5U8VHGG1_KXTgXbL8ErZzLzTzvqLqiIOBcSTKw62vC2lJ0d0ubdVn-Y0JkTYXbekOQwzFs_W5Kyottc"; e_upip="AcQUrHkgpJHFZ_BTcDIIYkUDioyYzbSLGohedj5zhSzrY4_y6K9-HkYzZIvC5RAEZcNwuVTATF-hifoEXs5Th-Jo6Me9mn8uGqfuYulXK6o"; e_fb_zone="AcSnKd7yRpQPQyK4pDSZpSOzFfVW4PvN8ZSrqvEldIJPxaBUGMKcqZVIJkUURH-L"; e_clientaddr="AcQr1h8TAyT0v7iMBJRcVXF11nudZlF5FUkSmhG4cPiBSjXHTrAfOphC_lP5WXCFszUEOcyN35WzZSEepfIQLXUFBliSWwAj-seTakVb_NsYeCpB5w"; e_fb_vipaddr="AcT8Xh4iqa7VNOm0bKkKLuPoGIVE-Ip4enXs84x28aVWgy0ot2hUfDUZ4rixfT6ADZqVpiMVk2cHZo00MtbYHCT-zHJrG0XGch0", http_request_error; e_proxy="AcR7kMJIgiIIVQmHdlswhzWK8yvs5BL6lkEg9XQ1bmKgfLe54Juaz-U5U4RlwzxcNwamq0AANYP4SDA"; e_fb_twtaskhandle="AcR3yKgKotpig1PRDcVBAyz3_yG1G-iKbrBHt1mkR1uZrN9PfR_TII68TK_e1RRfh2p1_TgV4lX6hopLqiFqUjL8DPgOQa5CdGnk"; e_upip="AcQ4zluVvVhfLHLxKEuXFwiPF_eAEbuLywMs9gLujVrH1dY20i9xbWMhSKgiacJUMOfCDx1r5O9McjW3sK4Eo1WJG7Av6skmlcs"; e_fb_zone="AcTVNUpoUXeVmCoCRFxy_g1Y-CB-HuzG51jV6nJOQ2Bw4M92cKXjEIz6nlev0g"; e_clientaddr="AcQShceUgephB-uXKvTb5J-vjg1TUcRBek6LfaLYEzYiToKsol2uc9pcx8SYQmEF7zUcrb5eyPKI262bIV8"; e_fb_vipaddr="AcQCbhbDDia2n2NPdCFis_-u2QNvUb-4cIkkJN45of3t63Fm5WjVOmXPJbiWmbXVr3MmZAnZLA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=710, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-12\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-13T16:00:01.571Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-13\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1218252156,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2476734,
        Symbol(triggerId): 2476732,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 13-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A8LdYFQPbDERkppmRgtLcSJ',
      'x-fb-trace-id': 'B7YObfdBZCh',
      'x-fb-rev': '1043053164',
      'x-fb-debug': 'nLOh/9LE8vbyPOgBrbitfbQbfh5XV/Y5OJe4goLxz4g7MQMReqUvPUDwKTL+xtWDpXwKp52FLiFrdINC0d625w==',
      date: 'Mon, 13 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSSVIozr2ho8xXCPc7A53AyrJ-gcIZDMvqYckphDdtdkyWQh1TXQHciGaVdlCdIp-JgBu15fZZwQnTvEhjWbA"; e_fb_twtaskhandle="AcTf1URYHyV4J84i_WvquNFrh_YdUatJuj0dn01BVJtfiEgbUGX4EZtpfHGl637cneIM9xrNM37z4WYItEh7HZIGXwHHvr3xZdz1C42YmGLrr705Iw"; e_upip="AcTdHVtq-dCIWHuofGubziy4FTKllYWAN3uyKMSVBs6Is6Kz5PcugilqhIffuJT_LXE5AuLtb24P6U2yTmdlaxalaJ7SCq282fThiHwK9g"; e_fb_zone="AcQmLLSwhHdgD4V5T64tH5TSBq1Nq8oMo4jc6jYiahjVqqzPjjOHRiFypnDfjSPV"; e_clientaddr="AcQRPLAC4So0Alq559zeJmv0REP_vMe6WuvAMSQNLCy-xBlReHrmKVzdCMvcndZoJLZ4p94IYYswXx2BjfexWtXHZS0BTi9Y0qRe30ofZ7EBT9qa"; e_fb_vipaddr="AcR5oCBTP_EltHs2Ih96pdm5TXQfO__VDXmaQQXYv36xD3T0EJz0aBVC0n5WTnSEb8LInebsvZwApLn5rvKQ8mS9j3rNFVSO_u4", http_request_error; e_proxy="AcT7foQ11D7hrF8JZSOmZwsp6orASxzMDgYYmk9Ne_yjyuJa-np-E7IK1emM918xCRKEDEZfh0OklCM"; e_fb_twtaskhandle="AcS-tI0vI9QL9NPiftQuN4Q0PFUt7iwCGPEAXjP9gGP8BGfb8E5MCL3tkGZJu44THCDHVV5dPjOxhhJzUNiz5FTYn8w5JQiB0vu76_I"; e_upip="AcRxcQbruo3guD6vaWUwNT-VR4ttq3u6tGV7qdDosXqf3x6JacWjZjGc_hTNJwvxsn5H6ODnxpI_6J6QBYFV4LosVGKXIdj3ERQ"; e_fb_zone="AcRyUba-VnACYOJmWKcS2vktRlRR1BQuVcIWpINacOSEv9mEnty-_zcSdO8-qw"; e_clientaddr="AcR0tSi2aHIVIUvNVBi33usYV6amn6VBATIO2IQF9SzJA2HdGfiqOo0z2_YP1xOo_paWRIzfX7n4d8bxNnQ"; e_fb_vipaddr="AcQ1Wk0PO1gj8YH6NwdlDSF5hQJHdbYd8SD-QnmRzhUleTbf0wryqbq3lBG7IKzH4T5mrE8Wig"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=774, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-13\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-13T16:00:01.582Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-13\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 855548321,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1714072,
        Symbol(triggerId): 1714070,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 13-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ASlUW-4__x0Kerr4IXUf1zE',
      'x-fb-trace-id': 'AkSvnJmfR1x',
      'x-fb-rev': '1043053164',
      'x-fb-debug': 'CIaGydQzTK6QKK3E5KdYU9cDECn3RFbOgZJfN5GxIgDKbxZIuuDT1gRMhJZhvWQjrwTNloY8CQXnjMt6bvPBkg==',
      date: 'Mon, 13 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQERz8QwwWiOMzdIydpVsYN0si3Lv39QjKxl-5MErMtnkP5WitWgwwKVv4dYRbWsHFIGPsatyikdOXoSLAn"; e_fb_twtaskhandle="AcSCJgA_gO-5O2mHRWS0GE7Ppt-8rOFuIxKDxQk5eNYluboYsU1Ub67pOAgmCleGIO2XWr2pKQbUvL5RWaSkJrq6RaLDcfr6LPSthmFC8Od3VfY"; e_upip="AcRrHqoZL6IqAOKeQD-iLbbc3jtwMP71ub6Ur---80YJwepH7SZctQoLxZer2h6Ew97oO_Hm_ZhPauOlYH224Qu_yDwLig2dimvGY47F9Ho"; e_fb_zone="AcRmc9nTCuPD8DNisRHy5N1skedKObGVmPEQvcH8Cx8cyhxL8Rht7kIKLxnsQXAq"; e_clientaddr="AcRfEMWaj6BBtnb2AKZXM-qb7suNP6Uv79hbbTDnPWgb30Xv0dvQDxOZkpSP5Zqa-bCZmIFmEpwDcVw87ZLN3zz548kjUFcpl8iL8tNp6E0_FD_g7A"; e_fb_vipaddr="AcTa-xAYjpOaSKlxzJO2mWKKrRvcmDzI68wtOfgBi6sS0nCj68aHSgfxl588i4vDBVgW7-U7a7bAT4UPgg3yCVWAPvHdx4SGuT8", http_request_error; e_proxy="AcQsLgNBv-SHszY7KoKEOoCzWmI3ZARStorFzdMu2gPds8SeMJemukzMOXcVolh4PXNjL67EA2ew9to"; e_fb_twtaskhandle="AcTwDmpb4g3hhYfGaqwZ39BgaJYCF0oKPwo2rUVH-ioKQkWMKpTpzHUZFBUdV0gExdf3Uy86kZZqvMt-mz198carZye-04kM2KE"; e_upip="AcQZQzZ1Lf-5Ncz_IY7twDgUjuvXUzP4scrafzH3QATTLS5_Ln-_QE5tYx3qZ2QyPh9gVIQIrPeNLGRqSdfIDYKprelXwQ9mTdI"; e_fb_zone="AcRVcYGSSJfh6osbIA_1Mm0y9DOs13Hwo7MnxJUAVO42k4JFPDtxhqB8cxWqVw"; e_clientaddr="AcQiDNcGHiHlAKMWHVsQoEjPG4RnSj3IxU-avEziXkjcgtucxiargjiauzYzw0XU5kzVGUSrMD0HoozuTKQ"; e_fb_vipaddr="AcS5SqXZgzfoVuVVmdfOz_UVThmA2ASPYX2X42r6Uc1hlo5OEPhLEGizDkWHWvVhesEx7KLJ6Q"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=14, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=704, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-13\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-14T16:00:01.561Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-14\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1304653555,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2655300,
        Symbol(triggerId): 2655298,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 14-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A0KQNrR4gQI34ug0RdVE9Lw',
      'x-fb-trace-id': 'DoOlfWTr2Eb',
      'x-fb-rev': '1043126001',
      'x-fb-debug': 'skj2neZVNeT6XaZTprBF7/Eh+MmAlhSehIwvuDm2Ac23uxWzwrlreMZ4fxCWsSzs7mL96bX7RcbU9sxdF7O3VQ==',
      date: 'Tue, 14 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcS8c1jMT1dNFnVtj6AYZn_TPeujMxTeXAOIV0h2EKZrksHJLrUSNIGzdfNmYJx3on2Zv3EgTNCPIn9SGoGp"; e_fb_twtaskhandle="AcTqqrqOHIzrcLElwNRJ43wkxFGjwol3iv3zIUtruWx9RIGvxrWKKh_W6i4I_dSAIVRRn1kUKpBRc2sFq1AeebpHQ0mcychyG02WZSE2zD15ClU"; e_upip="AcRs__K76ZgcQJDVGeIeGNPfbSEtH513iIFbxBkym6nfAzW7OoFIH_yOilty7H8MRk6t_oZ48yUpCpfVSOMIuC0cu2of-MgarIfOnRqalkI"; e_fb_zone="AcTDx8U_j6Z0h27AlL2JRXHZUGgyhEYL9zV4tx39-soexfWQB-_hdWER7HKnb9qm"; e_clientaddr="AcSpleakHHVgTMmyCtdl5YIHTgd5Rc_DwlUNVzK--EkveuGn8rhKY8NxYjdz87AAHgci6n8cm6cCRVpQWNOtOt8OZ1g5R-ZBsJHERRT9NcsjzZGWMA"; e_fb_vipaddr="AcS49g_CexGSQWPnGMOAh31oiOD9rXfSsSP4Ft-rcgnFMCA5bSfi9XkUeX-NGFfFbMFwETWvjehl5fJlBTatVvYlR3PsAHWpqJk", http_request_error; e_proxy="AcT8RhbanrFieKPorjiwZtQ_EOuBpaNrI8pMiacD3v716ETKI1Q2qHMkEZb6Vpy1aVMe21cum26KeKY"; e_fb_twtaskhandle="AcTTj-ap6ezz7JJ3T6hp-3hd7AHwvxbkq4n_9M1svcyfbGRH7pjy-1ovheNwL2YsIhC0yOwKNngL9ImF8BI7dFvK_mp69nkCd7c"; e_upip="AcTgfuyYhR5nbLxV2g3bJh_oqcO68pYnYP-XdZ_Li18vfh2gqhxqVFwXiyn3oNphgkbqAhxxGeO3tcYghkoP-amYNgXI2yikMko"; e_fb_zone="AcSZLL1pzGVNsNqtVfiyMAXK1S0xyU7wBfKu4PtLMU8b1XbMV6B7-1941vO1gQ"; e_clientaddr="AcT7dnLk3Qm0n9xpaRyk5UQnuqbdiqI3ddLmyJJsqQlGW5vPI45xD0aGrNEyZyEIK2dSvDX-TezZ0hh-guk"; e_fb_vipaddr="AcRX7bcizuONaTVZdPXhIJKhkmUhr6f55_foAD6F4pStBSBRqPnJQTPMpZ6hQ4q1dGHMOulaZw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=775, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-14\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-14T16:00:01.602Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-14\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 941949750,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1887059,
        Symbol(triggerId): 1887057,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 14-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AKCXvXc3JDEd4jExXQVAvCF',
      'x-fb-trace-id': 'DI8wHzEdwvV',
      'x-fb-rev': '1043126001',
      'x-fb-debug': 'lP9pzpKQdMK93nzzUsLfTgrSRoZMNNz031tWuJTd6oGG4V5+t/V/D+pK0IZoHxr9fsXYEhs5eV2apk5ouux2dw==',
      date: 'Tue, 14 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRFd_sWxBpB2U9AkVlmnesI6FWmm7do2LizusKFWIn-q8_aLYB7-Acnw-u65xB7QZkt8iLkI2nMlD6zD4A1"; e_fb_twtaskhandle="AcRb-koiUyqSmzH-5AzTeefJQDMXrskJjOskTMssc6aZUsBeqWBA7dcZY3LYTA-3f7JTMGj9tqbr4nRT7Lak2zUFLlN9AJbL_zoSvQva8TU8uyA"; e_upip="AcSbjfYdTS1ubsB7NgzwgtS6FpJjBMHA3P1udpyWHRXmy2Ro-2d2iL-3_dJMob8NPiLlQ_iIr0ka2ejOBEvoOTEjSIfUdYT1Y3Ugvr7TWHs"; e_fb_zone="AcTKOi2pxm7ko3aiBDEtcy_5gqA6bB_ul1Q6YRQk55h80WhJIvPXrqVIlQWI8Rl2"; e_clientaddr="AcRm1onIlgi9aZXUluXc4LDWiGuPY70Nb4pn5S-BpirG2ys6DeXC4lwwDD3gpL00ZSKVZAkuZScGqptCMlNBcD88PCtPDOOHfsk0JWaZyiFIzGSKRw"; e_fb_vipaddr="AcT2hjH2cInn2RxI-i3cpxW-b9y7WJJy3f10-gcC5_C3iu_G1r8Iw4_vs__kQH7N1iMO_ms1EiRVW-AwUl3JnTEUnVilKai4cuI", http_request_error; e_proxy="AcRAySFmToWYP_GRTQXKTY-1JzhcJ7dxmw-pHG4-r9ksWr5TWuUms6KH-4bRU_knAq9bUAyxuuaJnSk"; e_fb_twtaskhandle="AcTAjYgDNWx1bE-raTzzCq642fXUFtuGFKTVOLkBLPML2CEtm3LTko47l1mRQmKBThdEtWA_XJdAob3oqRyV3mIDoMiizxbkGUNi"; e_upip="AcRQu9SfLcyfDrRmS9K42M7flMTwgP1UyMtIUwqnRcST45Qp62RLGu5wYW_OmzRkX8aIAIMkG0PBeYt1RC8qCj-cpDrqtiEiuIo"; e_fb_zone="AcQa0BrYQjPvaL_3xjhlHMC13gxkmXiSol1kV_bbXqgx2XJblrtVf_HnNN6bzw"; e_clientaddr="AcSv7GALCVC61epUopDywK4WdsRlYKvNtTxM0kCkm11YUCNgEgWvypPFzqwCU71r4QxetU9VzfXlDIzUsp4"; e_fb_vipaddr="AcTpND8kPXQWrTVZNaqtiGIzB2GAf4CvjjOunT9xarRVXMZN4L7hLc6_gXYrD3Wg_uMberRghA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=716, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-14\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-15T16:00:01.551Z'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-15T16:00:01.551Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-15\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1391055153,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2828609,
        Symbol(triggerId): 2828607,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 15-Jul-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AYQQVgwhvSdRwnu7Aiq8SYf',
      'x-fb-trace-id': 'DnbJllaG/eB',
      'x-fb-rev': '1043194606',
      'x-fb-debug': '7bLkEe7VciJFyjpsRDNHBELO63PNM21NJqWQ8wFAuYGfth76YkTO6YIDb99Xh1iNuQ/rrRVuthE3oZRq2MiIOA==',
      date: 'Wed, 15 Jul 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSoQ_qQqv-S0bupB4Jkc54EyZ6fx8CnxBJxRMiVNjuKZm-WRU-xGai0pJqJY8s1_KtaPKGYtbIhO-kC4sBuYQ"; e_fb_twtaskhandle="AcR9sHNX0xU93_ruQhAN5dCU5qQZhtglbgJRNUVQEPflJybYE8l7qRv-j04KzxEhcAdXikQkw4Q7eRAzLmOyg8nBfftgvQBcx7kHpsczbNbxZEk"; e_upip="AcTO5z421hIJcRJkdaXkXzkyC5-BihHjNGcx4DQuyD7A7vld0tEwhDHFd8Z7TL_mJ_6UQirJX0utkBJshi9eo2blTi1_N78rTEAlC0Ok6Cg"; e_fb_zone="AcTWD8vZelbwPREHE-U_9FaVQDhIDY_BIMPH0aeTATC4Nu4rD7TFJCw_3Ot6rLmO"; e_clientaddr="AcQXxVhau_rmx4ELIlhUMmZeDTZG9P93On359IjWqIJiKPnpdT2WoHMEiN94V6H2u6GMBK2a8EyopPPX_tuZdoL3i5X0kVtVpufmeYd83p2I5D07"; e_fb_vipaddr="AcQBAHqyWRTAVDcbxqF5x8gGO6_Dg3R7x7yPC8rvahyWQXZLl2wPGx0B4PhAz3B0rf3oVinQ4f4OhQaaYfhg9Hz6oRXKMVbdKow", http_request_error; e_proxy="AcT6c3QoACeW1pvswYzSQIrbfxMX5DV-aI-8a5xszWDpvO4HbTeDdZrbnB2YTDf_PWvgOe56c_2H3Gw"; e_fb_twtaskhandle="AcQyusncnQhjzaWxUSySh1NbNGqV0K7x3tbsXpb-zHjHinQKam9JiQUqtveYrsiH78kdguvUwCEG9FyVk4X_CQ8QseFkjZ0ysA"; e_upip="AcRjd9GzB666zVJM9wmNOziJqXh4h21enubuGiZg7NfLIVRV38VZwA65HTj0BDK1vSgUFC5B00CZdv085Tm9IVxZTWvMMxhoazI"; e_fb_zone="AcTeTQCIKuZxErFXh4-fcIwFeazocTIjbC49i8dKW8Puqu3IqK3LTvaTXZy2Xg"; e_clientaddr="AcSACnKI2hRcWFlZfeGtW5OSblcQErU3D8fOMhfHbwdAsg-CIak6VWQS7tEU_X7-SiyJDjfIKyMJiLv-4m8"; e_fb_vipaddr="AcSBGIp8ocmFd36cOLNuUunIdpcJdGt0n4eMUg3akOLDJrZJuBkJjDlzUrvW4Ch2UTgob6zx0A"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=776, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-15\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-15\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1028351308,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2060044,
        Symbol(triggerId): 2060042,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 15-Jul-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A-0lHqH5SDrsDksEL4XJ0X9',
      'x-fb-trace-id': 'GgPOAjw6DHL',
      'x-fb-rev': '1043194606',
      'x-fb-debug': 'F+sML26lYAGjfcfNrqYMj75+U7CP/TE0uyRkJILdW8B4VPlcVCOEnSMKxfk2vuWwNmS9oejWtzMaiMCQroSdEA==',
      date: 'Wed, 15 Jul 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTK0-ddMhZ_bWR-bMRUzKnLHnodqv6Kvqm7sFLjriUH-HaG6zL-7LBo0VBRucfVWYSz2gwEBTG13neHWqry"; e_fb_twtaskhandle="AcTrHJeFHs5Bf6VyzzKBbdv_nBSrfl9ogGwRG-FW-1XACz94cwSQWSvE31-tmkNOqkDCyTgEkJsuehN4zUTrIMyW5pUDYjHWT0ZumKpct7ofovg"; e_upip="AcRFAX2BViaN2HmqHqo-3XUN-OZsFF9A5eVNUricv-UTGUVWHeSpHQkgOCe5HTlgAc9skL2VN9ELd_VWEq-uPN3aPS-veFOBzvDp5jCOpqg"; e_fb_zone="AcTsL871HMxxvvgn47X53qMJMoJK7fgsSYIobvnh0daMm-2Nmx8oxv6KKfxNJf2X"; e_clientaddr="AcQDHiVOsrt9XLnWLFa4dibVAeZMLReyiqZIpGc_OeP8eM4oHWpLBuBwGwIhz7U8gKgXf85UDXTapz3D_0J-0zdMiX1g1LPjLgBM69DRil-TRv8WUw"; e_fb_vipaddr="AcTA1mTfBvguQ1D10mlwo97s3yqRcoa4UxgapuBvrc5ptixb_IQuc4QRrRAe4cmjh-txCocYfLn3jCWtleokt7fVC11tR8jhzM8", http_request_error; e_proxy="AcRUg68HXSydyTdK4B0I8pQ3jwrA9KJVYtphAt417bTHCPh099C5IbgHWyyvywbagXx5KT6jwHH8Or0"; e_fb_twtaskhandle="AcTPqitp7KW9bEo26lrJD2uK3RCS6ip6WRp9aiw_0IcmfYisEZXmgUqEKPurvbPd76OInCBPgfl4oCf_MXSm_FP9UeKJ3w5dD8k"; e_upip="AcSIh6dyYYn8qzM-yD-QQv7CSew3jkugJG0M-EigTLNXoN6vIdlqFYorXNbEPDL84zfbqZMRa2XSyele9CoxJevES_Wk929dkQw"; e_fb_zone="AcT8g0Ffpwcr-HVFMeDhY1qDDwy5FnJtrqdFk-oX6FZnPcp5XlIC2-XX97EGVA"; e_clientaddr="AcRuJzhJEYjJE03Wyx72ciB5w9ZijdAKY88UuTv0V70bCygAAGx7rfW_JhI4C3UshypwtjTKTzrEeACvAmo"; e_fb_vipaddr="AcRSK5ARu882IXuyO334I0FTb_saknC3eMiNwq_Q4ERRu1MK0qoRkuoWyVs__eV2vwyzjztItg"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=772, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-15\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-16T16:00:00.614Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-16\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1114751384,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2233095,
        Symbol(triggerId): 2233093,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 16-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AI4uBYGFmGaDrcJ8HfUh64H',
      'x-fb-trace-id': 'EmTCgxsuLT9',
      'x-fb-rev': '1043284115',
      'x-fb-debug': 'luCBIECX47P9tzIHa8uVw1d68ft96r/XlQR7+CDOWJ/kJDfxR7vmPc5P8+G70+i/g0xlIHKQl/o5zSNM7hHVzg==',
      date: 'Thu, 16 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcT67h3rgaJaN-foQ5ZDofs_EYNhTKRI9bd-BkncqYHrvnICkkTQw_hahQwF6p_cAQV7HTeVwgPEsyblgbap"; e_fb_twtaskhandle="AcRSMuXvn6n7Q5ye65ksEeV-lAjpECTqKI0K8a9Xcl03OOc48N1ZLArI27UEwa0YGa4vl8O0h2WVEFU_qKzp4c_EZAincB1lskxhPrngLGgJyTA"; e_upip="AcTv340K7FtHjVs1cSdhwmLkR7x210EuLwpCBigCdgVil5oXeOBSGxk4ceW6nKOqwlxzQeVcY02M9oR8i5gZsxs3twGEyKOkrK_9eAadtxg"; e_fb_zone="AcTOZeqtM8kqAFKZhhsI6SYfeNrFnunhpodAd1vmi9YVkPTZwcXCgdRb6zsWjRpZ"; e_clientaddr="AcRpbMKzxxWeE16-boWpAWka4_TwRVROAgnCn9kxbaxi95M5iyTL2VaE2Bf4TyMM01FtTdKjvNGkvOMnvbxtHsu5-lKm20KU-R5VkBaEu5ZxSVAW"; e_fb_vipaddr="AcRi5ynl44eya92-PTijFk1yfiUe3Bpl5maviKfMFSgcEATR8Oblk23pTtgcjQlKTAO6cXqSSSJfWEDpe2cd0feWDSTl3EB2wgw", http_request_error; e_proxy="AcTV2Ygl4VjhyaVfNFcAFltmcs2k8KzvkXBmV620V2AobRa0kePawgtBUSSayYjRz1ImyTX2TDV9eQc"; e_fb_twtaskhandle="AcTduz1-CnGL2ug7wuoUymLbQEuJYMpnHqkV_KkLfJDbQpt1dDz_berxbpPhoawa7hi_s-Ny7qSvByRsgdb8PIU-FHx1SeJxIVA-"; e_upip="AcQILYDxtmVa7iT-Ogrfo4SY0znBWKcEdeQH4_D7zHz0NXrIPOAqGwlPNs69F9S4Fi3lxkKIDxn2FGy2vlIk1lu8yeLFuYlpvN4"; e_fb_zone="AcQQImxJBMBbqRR801b3wb-s6vFsjnyMIGWbHBuIaHzVC3VceDfqtAfZgNHXBA"; e_clientaddr="AcTAeMzGazTj9ccumFKBnJbCqqrO_8tIKjoee5Jo4ZNtJuty_CVsOiedOLmOIKSdopIhCeyg3a3ESobRamE"; e_fb_vipaddr="AcQLL5foLt3LoLWr911ltE3wlqK4Dy0vLsZBuRZWLIwiMwBI52BBU3ZqGGeaDySLzR3B7dl1vw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=321, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-16\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-16T16:00:01.039Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-16\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1477455654,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 3008491,
        Symbol(triggerId): 3008489,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 16-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AQy06CH4_Jiyg4S9CQA5UQn',
      'x-fb-trace-id': 'HMuV+Xx+12u',
      'x-fb-rev': '1043284115',
      'x-fb-debug': 'eZa4G3h38ivSsDq1D16xLLxn7pCv9u/J6ECXreMXG/AGIXzHq1EIwHw6In2tExJ0EIOLdf6PTd+HOFMwWQEd7w==',
      date: 'Thu, 16 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTwCY3LeWchzxKLnx13V3H6KLTYFyJPCLcfgYISRCHbCdmb_A9g0HWHMNy-LybDkM8yrPEWIoL_xe4Ub_XJ"; e_fb_twtaskhandle="AcTM5Ju3og7Rda71_ffZhT_WIES-oPff7V7zQzA_8NiIJLGJdmB2AYZAg1iU-ThiBa-dqGc3SRMVvU8M3lwmSJsRsCIc42UDLjxdUhphri9VfGA"; e_upip="AcT2nT16beO6W-uW5b3crFLjanz9eeGvxTwhIc8p__XfQedfsMFEDEFBDPB0e9BxUffWUMKAUev-9-iweuzrCpzBV40H-DgU0GgsdcuPlw4"; e_fb_zone="AcR0Bb8ubduKCC4JXQihOzBy86QVyg0j_cCkasp42f0x5zqCSC3MFVFkw5KBFz05"; e_clientaddr="AcTkX2dQOJNzMT9dL5bnxeq4mOCp8XiOz7r_r7YVL2Y8GB8Cau_MNxoguOanmDmWFjRu5nGFVq2pz0hkPkgO3FKdUfiJT7eEdKAhogks9IBggAk7Ug"; e_fb_vipaddr="AcS1EyqB324430ZDqNj4NotAsyHsk4bbcVvlML2R__O4yXCR-_sWAefCxSJfFZBf-nXRWFoQgUpf3pwxgUhgL5UF_5KxmKotzWI", http_request_error; e_proxy="AcRwGBVadLnI-_niYsNCDKJ6fQlkeCSLMuRyj4ESJgRe3Hd_blGYaU5SXC86ugbTKkeQLdgkglul2XM"; e_fb_twtaskhandle="AcTXz-DxAVU1Z8MvPONXJe2pzNGc4lXk85FqcFjVIvSiOhCTqzT-wOv4WW84Lowazj4HxL2I0D2DSyiln88xUljWIwqEXQr4TnR4"; e_upip="AcRpA6149wZKWzUotgh5cAnzfwusuJLNzqIBxwQHzdYVn2oHGqw680sg347AFzwdIokaNNkE0VTGR3kT7_q2rNXUPsay3bSg-1c"; e_fb_zone="AcT735bas_0cdBDik6RiASAwol7cOn-TjFF1vtLsVN87K_7rAd0TY3QMXO3qMg"; e_clientaddr="AcTAuih0y_1u2u1RQbTUTDCHkXnzRIhZRxH9pto-1DbF4uAOMg21LBF9kF4AUkle2Hv_2mjAi4yTNqYj7ec"; e_fb_vipaddr="AcQ5w0joRecKO7NYlX8z2SPvAR97BB4_1l_rdFCIgDHafVdk6ZO4aPglDgW65T8XN63A3xhA_A"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=729, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-16\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-17T16:00:01.612Z'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-17T16:00:01.616Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-17\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1201154557,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2406080,
        Symbol(triggerId): 2406078,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 17-Jul-26 09:00:02 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AFtuKRARSBMFYiafeYUUu1Q',
      'x-fb-trace-id': 'ESAF3Tg3z7d',
      'x-fb-rev': '1043363706',
      'x-fb-debug': 'se7/ma0Ugn5P0DZhWZC4oBsfVRiFHC6RWYKvpe9qunVjChGry4h6nw04vB7PoH8zPQSjhjuQBEZ4mQ5xOC5PjQ==',
      date: 'Fri, 17 Jul 2026 16:00:02 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTqLef_qANdv0ifuP5HaSogvHH9LT0ci9GyRGhWlfupDpkTvi_6SjagOF8JZlEAUyUUcVN1-lcikth8j-U"; e_fb_twtaskhandle="AcTcdO_25OUzIhOO3pMP3fDOUTSpronn78VrefUMKNmCNVvC5YdZifEM7Yw4_88HH-T-pJ3tqFyIFS5DAWLcvaCcyAni2qL_9ZZsZRs_Mar5D_0"; e_upip="AcST2ErZVp0OaAeSzDE8xWbhXpDfVnoTT4_iAxG_dFcF05oBt99PAPdJ97wBCKJViC1-MwfYd8yF0LwyRRzstUSTCVD0vYP3Gr5UxLhXNek"; e_fb_zone="AcTwSh9go2qpXeHpHCCfFpH_RPGbtxenjhJgZCu5kYZELqn4oTd7ML-sXllZDGHX"; e_clientaddr="AcQLvM4iXGDVSnpG0C-xRebKNpHlAz_htUPtVn5JciEGsX1XJkO70m-hyTb3pO8gCHOYcOFSBmIDLsnU6O1JSdIGTinfDbOcEpKk5JeHn5tjKmZBwg"; e_fb_vipaddr="AcTWV8HMYHJpckYdGkV6PIc44hWtjYTW1YyAa1Iy8TksXA60cXL3cYWm0Uerlufd0gUBsMaE6WiTay39hCF_vKHVeM619nr7Mew", http_request_error; e_proxy="AcS0UmpxvlqbGGKkYrvja6dlKCFR65rzrdUy9JI8Hf4CBRuQxl5TCHhcMiuO_P_14mzLRfJaiFFK1qg"; e_fb_twtaskhandle="AcTnJrNpIOrH4f8ffEA9rJ-P41bMtEJN3BeiVw1_Vz5FRmqdlAQC0_ZagrLbwK6xdt-XZ5b3gDLoyauEvfRZq8IxOVUO-gu1XkGm"; e_upip="AcR6SdLVs7M8cCZRnxRPYwPq6Vf7UQXdl1pMiEfGHS_48GxE8vIdMEpSKDkTtYAcrJnWrV7FW9NZCNTrc5haElzAbKgderoFklY"; e_fb_zone="AcR1g73f3RpUmWeYPkkK5hwqS2A2Abhk7yz5SE02FQwjurDh0xxftt9OaFy1Aw"; e_clientaddr="AcSU6SRCwSGwdwOhCJK9CYgpn5M1MMld8yf5e8msMRcMVJYbSGa7r-FGTITULZyKuvCrgHiVQIThhBSWe9k"; e_fb_vipaddr="AcRLHs_aGP7AMruvfQgqhB8PGJhBD4oxB-j9pr-mPkfuPCQwTrk0mVNI7P49sT911f_ITp5ctg"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=16, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=786, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-17\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-17\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1563858399,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 3181796,
        Symbol(triggerId): 3181794,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 17-Jul-26 09:00:02 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'Av14NTwwJtUCvafZ8oJyF-7',
      'x-fb-trace-id': 'HuiFKFDMcGf',
      'x-fb-rev': '1043363706',
      'x-fb-debug': 'RqqMq3LXJz+9uhdU088uezQfHZC5iC26VS35U7H/D8QAvSYdnoh2Wk9UdNwcg8RB10NITgf0QW94IZ/zmXXzWQ==',
      date: 'Fri, 17 Jul 2026 16:00:02 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSUkgx_A-_H_V6AnXRpp9RygSn6pYnUBrWU3M2jiUwaL0CcxEY123IjwOgZvQZR5bqVTH6xyM05i0qLY9f_"; e_fb_twtaskhandle="AcRLWNfhoc5fg7uxPmRHmHY1Y56CFoIcDLO_p_1ThzVUMlCDcP_FYhmaL8Fvf4eVe26EEUF9jkLfanFTeBfsFrchPi9bN6BscD5a1iX38Fl-r_4"; e_upip="AcSNFSisyyQxE25fKxxGdoo_TflImARvXeP3SFyd46jW4maSyJc1LVh8TI2W7tCKHxgcIVba-5pESd8q98xhDNusn2Wb0vuiRS_4G_sRwUs"; e_fb_zone="AcS4A5cLi35SH1DySrH-RrhxkH00pVkXaotsvH8oUqyITDoUIEO4FpUZ0qgKnSqt"; e_clientaddr="AcSPbTbjhpZieQk61RF9IVP6mW9BZzCElIpzg21oF7NvsQW1w-srACxu_bblNZYGNasKk439FsXvMZE7NxRrL-nTmLoRZkEPnmgQ5kVMfzR4Tn1k"; e_fb_vipaddr="AcS-mOY82SZSe-VkSj-nv1GKRRlVbuz3JRV3XLC38qjfLESihTYUKsV3iMjhmY4oW1l56TcWe5oj6alKFWMgQz1aNRV7BXrQIuo", http_request_error; e_proxy="AcRkRbAChvDNxxC7xCjxM-a9ZPA5TgQmsWkZnNnsJcNYwmaLrHYS2GN-b9SHBzHxumkP3AK8Mfbfagc"; e_fb_twtaskhandle="AcSxpnAiEU2ZL1sZ7msrCSooPPXY1jtxkpWQg1utPxshJileQxIxOn2h7jSJtAyM3RCTIvixqELRwHzgIZasnI3ijGvcOp_7bB8F464"; e_upip="AcQcbl2H80cIzHklFoHjpsPDqsw-rFLLIyVog0yGKgX_Yy8sS6BKniIF1Z3fbfQBQz9aIJ089Swhrw2xo4PBWLFWaPphUFURvSI"; e_fb_zone="AcQGFM09qDqCX9TZe66mGpkzqQk1K5nIkkASvz5h-ea_Gn3rZVhX8UlQZDY2Ig"; e_clientaddr="AcQ_F_FuGPfMQ3FGjtTa_B_6YA5LnkK-Bz_8QLfAby5zkgqWyzCn7b69RbJwox_mZPPW3HPmjhlhV_9RSho"; e_fb_vipaddr="AcSl8rdhsfR4LK-1Zsm8qiuP2IcnWx5rzcVS7c-BYmqAuEIDMrbbwCGPPZ6zLaip55PQKhOh_g"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=795, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-17\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-18T16:00:01.119Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-18\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1650258315,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 3361387,
        Symbol(triggerId): 3361385,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 18-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AzWADdnprw2xe6yXYeqIDM_',
      'x-fb-trace-id': 'GsJRR1XtBkT',
      'x-fb-rev': '1043423438',
      'x-fb-debug': '4YB83eiZy5wimeenNQ6uPs3569DLPrtyfYQodXnTf5zU8qQmF0f3DWh9lcJkifttIQcqBxul8IofKhsHOjdsDg==',
      date: 'Sat, 18 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRCyE8IjtODJdRWYxyHZR0JgASsUqD0Hq-SYJdnPQvt7WB5vZxzF3WbZcqjZHnzjwcl7uFFDm_es2UdGZBo"; e_fb_twtaskhandle="AcQN9bUeKnloEHJkG-WB_6zkJ0Oy6YC10uMfNRTjScXr9iB6SBOGOgb0tUNeDhI2xnGlrf3nGtX_ce8OtaMv9RzGLXw9qCOXCueSoxHG_UhxF9o"; e_upip="AcTlhJjGoTUHlcS6BJduFNdL-GMVNmVUUuXWTG6UpTxzsO25Pe1WQsz5NPkFIIEJQh5Cn_8tyWhjaRTlAW6UZhFV2AJOi2i-jqv8UOVL8T0"; e_fb_zone="AcRreSGGHuMQloq_oQGSrJ6qh4epOGv9oPs3qk4UtQq5f8zs6mNK45WBcc1ZWY_g"; e_clientaddr="AcSW8MWFWUbbt9oybO8lmeyYUrYoTmIs3j2jGRbuhnwvxtUw2En00HwGnLbCpVooN1E7bklXQB8Qzzod4yhQixTE-Y6kOrEmhGVj_LSEfj2QtsJScg"; e_fb_vipaddr="AcQA0ieBRyt8fM_P8xGMOW8anDIwLBiEKJiESR0Qe8KwxXfOUu_PPB5Ra5EYkJwMRbaPjvJnBW9S0XcWQXr2pjWmi64yUkrF3bw", http_request_error; e_proxy="AcT7dnSZjgF_Qt1bKHMov0rycKmIRfyHtwz9zcHCbANl1OBdP0LaXJjgCK4t8w0Dk3XcoXSO5jx_t6c"; e_fb_twtaskhandle="AcTsV72CU0ZV6M1yR3P9QCUZtKLsw_5bgxqdBdCq71JQEQ_nanpJ2wuiHwEcF9CU9F7j07RJ7slbYQqoeh8TCG8ZhuhbokFU7Ann"; e_upip="AcRoqYp-JFZz1BZfVESEspIdOJ0MiIDg5Nb8fV9YOlPSRKTq1t5ZwpmuG4ZOLrD3hpiEMRMj-FIUTv5CghLBjkfYHHpiAbwuaSs"; e_fb_zone="AcQsiPaG0N_Nj1HX4j-mJES-1Ki2-uXiVfVKIs9Fll9vUk5I6p1vVFsRX-j-BA"; e_clientaddr="AcS7hqrQ1bxT5_4LRpksS6deqY8XHQ7WxThkVzs6Jxz02dBf3vsjS7pCo9T3pvRYlU-XE9zdczCHeaOZ-So"; e_fb_vipaddr="AcSwtqyOgosJdM1YZ6BKK9heT-l1PKEe4RRBrnjU-Hn5zlywC9up7uDQcY1lNwOereW6nJy4BA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=755, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-18\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-18T16:00:01.127Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-18\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1287554477,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2579059,
        Symbol(triggerId): 2579057,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 18-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AGOjTOhjUiGqfrNpsD4BYr_',
      'x-fb-trace-id': 'CtfPhEAqGw1',
      'x-fb-rev': '1043423438',
      'x-fb-debug': '/vbeIm17TvAOsgD77n1tk82ItPGup8Jr3xEz6dmo2oVtt7pF4LEH0asF6LzEl8qkD0CC8ZOOAvUkJlaSR7jg+Q==',
      date: 'Sat, 18 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcR6Je11EQaQFwwjaczaz2x2WKbqsQ73_-PtMq83BBMtyVdeTbeBOrQ_sFfKW_VbblMGl-ZYGS_i6OEQr-8f"; e_fb_twtaskhandle="AcR4jKuJsYdSJR8ijDZKmc6f6mrnjP-TsDfbCB1kypbP_UR8VJTzq65PYc9bHbnLd3OqteWx1TLtURZPJtMF3ZWCdoswr6X2GuW57oiO-tXvdaM"; e_upip="AcReSGJlKiIL9FoeR2x0wHgHvQtofFvVoqKMg2gXEqNdj1xMlQ07RqLNePvn2CQCjYJnAMAlaBfT0x2lPX1b0JLWg0gyJuT4rYMondw3R0E"; e_fb_zone="AcS1VRxxiCWNgz4HiQTagZpKN2TNUlD3DwOiAHa7ZhKig7MDy5re5Z-LMJ9hAfwz"; e_clientaddr="AcRG9KB7pIEyn4kObwh00Fw3ktz66xf5ZcKM5hQVnFx2zN6wBXorb8RF7iqDFSlR260mm96sKy3JNz3yVhpt71PjTF_drsT0Poq_kqknuJpr6Det4A"; e_fb_vipaddr="AcQQDi0dEVWI89idIFJjjmVr-8rU-Ed0Y2gP9OKyrY_2WBx6nimkvv7NlZqbM1yTIlfpc9ijhH2dK3LwBavM4UlerBeuSBCR98M", http_request_error; e_proxy="AcSW3UKr0debz_Ru585ns4vjKw7cdjVdWW0F0_Md-82eRDBzXofGI8IENw1pGWUS5mEybcGlajFchEg"; e_fb_twtaskhandle="AcQGOQI9Hndpw7LaF1k4OyRqz3lEFRm3KOV-TWRqjfvT963YgCQ7SZBE8_Wuw4_rE_nh39wKIKd7uQfrNwueJxj9laXbpTr5qrO8"; e_upip="AcRNyG0FtNyAjLNn2INqMDcRXmu_dWHD0tw5p-0wQiSHjbt4zR-X9Oczx6ywe-Ig-3-nL4RRp_rLfwG0JXBKbOVf1b68XnuirnU"; e_fb_zone="AcT8f3GOX_sGiNLG3GnE2s79a6QvARjpclaBGHfHK0lXu6Sx6KaMcu9uZkeyFg"; e_clientaddr="AcSVAJpR5HAMQxzPbQuCLB_BMVuLcEu0g4nDyn7K-R3L8nBpooUnvj-MRLzeL2dGWvD5FVxsppBn80hQrFs"; e_fb_vipaddr="AcQEzbIJZBEhxbdP0kC7GGJb0l48mdO4kitf07CgCJDtiXLwY_VQDYiR65G33RsxpPLAnuRPHw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=31, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=734, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-18\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-19T16:00:01.029Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-19\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1373955219,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2752040,
        Symbol(triggerId): 2752038,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 19-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ADcMhgbP415zRZ4h4VYlysc',
      'x-fb-trace-id': 'AuEyfMptW1W',
      'x-fb-rev': '1043437050',
      'x-fb-debug': 'pfNuUu6iAqCQznq/dPro3d1EaN/r4glAzSbKKWwjQaoDyUR/n5Z/iFBNT5XFZdMVjbhAbDFec106egyhRFjHyg==',
      date: 'Sun, 19 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcR_4iYaLuDdHL6RS5xYspRYpxNXvwMT54sprHQxYo-tFakR6grU5RCD8nPWoCYz-bGiTMNl-Bwo-igqORtT"; e_fb_twtaskhandle="AcQHngeeYJxZRVqriKtjoLaPgyXtky7xYkJlXp1KM8A1fZ_8ZC8I0KEUQvX71eK8ZJVJftQKaWz2oOdA7rz9X5VmTnocuan20TFaTZSNF-VPUQ8"; e_upip="AcT_nyQ59m75PMQ9bvnRW8prAx81yzAyJx9Ax9agx4h5SEqsOPudhiMGenNviVMM4NKXn_Dz23Z_DcKCLX4WOM5SHwV6mi4ODXQIZFAVpio"; e_fb_zone="AcQURPVm1uY_H4BS6mS7oByEkkiTdCBu1HuWobRmAXnI6K0l9BuHjK2iCr3JEz5I"; e_clientaddr="AcSKfumfL33kXfkkWy0wrG2aN6KBn81kPn1P5Kg2vtCNvGOke_rdMsUwRFzbdPaSTxbYbgiKz4WlDbVTU5JUd2JSA4VEqM4i0rFOc-BwRIuGiG1IQA"; e_fb_vipaddr="AcQ5BVBK7bzpzbO1tYZdTPRT_6dxRzSmE_uFHwlb3endTiW_yZn_CXA6ZIDnNPHQc9FPlbgfWPU5cGa9v47ze_8NL2txGvCFNb4", http_request_error; e_proxy="AcRbHQe0WIN3dtEAmaBleAUO7_heSz97IOVIHRQsPjyk7R5UArm9vdp_jmCKzOFiO1qBwPNjYELwqRE"; e_fb_twtaskhandle="AcRXiCUcFH_Y6EzjyXjIf943p3_IXPmPd0aZ-NfCrjENgTQFs2V5g6a8lJWz1Aqxa4qTmYY-2_9slrEgljD15FrTrD55SU9SfIgv"; e_upip="AcTU83l9oSUKT1JefmGnWG55kb9X6tyJQGIdH8VmuxICgtF6cFShoZ46Xwqb2Aw7_t_9EYPWD1RpIOwR3TQefQ1ghL_M4WT3_aw"; e_fb_zone="AcROB5j8B453Shod840fkazRn8XsbVKp9Ayj_cH_2ks6_Sq9uJiH08pgidIJSQ"; e_clientaddr="AcQftDwr7NLJQQs5fo4MxIjgNZA85fL9GsotPvijCcz-7Qqi8BeM0S16DULf-v-FMxvt-ZMS2I4Uex1G6F0"; e_fb_vipaddr="AcQJ2nJyRtKEjKKlhjUwFURqzjNpCVh7Vo7bxwBGf_MinBOtAdxcTsbeIws6hjko5gWLF1KXEw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=16, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=785, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-19\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-19T16:00:01.037Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-19\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1736659073,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 3534477,
        Symbol(triggerId): 3534475,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 19-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AIusyZLU0OES18jE3vpqltl',
      'x-fb-trace-id': 'GwBZe1mSIq9',
      'x-fb-rev': '1043437050',
      'x-fb-debug': '3vNHvFRhlnt3rKanSnYlEjCk2u0bWf1Yt6e40PMhb2GxXqFgAHVqKOuv+lxKvlWQanq+Bzj9EeBziK2CeM3I2g==',
      date: 'Sun, 19 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQ_w7oAY2Q_E0deWUpq0Yyj79M_jcfEZOmPZgPV10XZdAnQQ73Iw78ts59UPz8LxCg_KFBqzd4ah-OnMtbn"; e_fb_twtaskhandle="AcTiLAW-efg4khINCk28NPML7FcULr1Q8ZJaR7MUsW_MerctZn1xKDJvXUbrumDdVrY823PPmmrWXUxxlfwZjMwIBb3Ek1Nem-OmRzOuhSlj9E8"; e_upip="AcTAKA0Uqi6YA4ZMDij2_Rs45jDrhUcvu3QJPwApQbSvk3gqnyMw6v1VMjFeXjGGQmPEbzSxrrqPmb9tpXvXdKFc-O4HNg3RG3hj3w4-sT4"; e_fb_zone="AcQxHWzYTNMk10pPmpSlFGC4SiYbH8rSl06AzUDvxjtW-9BcEIY9kWYtpp8Xh-Hm"; e_clientaddr="AcRa2tAMpYwWk-ecBtHSaMj_igTJpiGSLzEzSl5ppa1iVUF1LlDK8fMcXa9n3dqJ5xvOEBUrOPxS86TfHg22wCx7YcorY9h1YJB6s0vlSVPtyXJV"; e_fb_vipaddr="AcTXZfPxEZLx_KbEbwhKqZPBsYCJyFCT9jq0b3SeYG1ixi0Xp_Rwq3UaasdGLXYN8-LH0bzPBIvniJLcY28-YTvRYspk5hfobPM", http_request_error; e_proxy="AcS1AYpU0uq_jyiUcz7qH6JofVkijp7n8hMzKL96_e1owAzf1bOwI9RdF1kw0K7K-czzX9u0TDYIvEM"; e_fb_twtaskhandle="AcTwff8FEpN_ha7WZbblSxPvCfBHnD42U7yjXKYHgBFWAq6ltXnOpocs7oAZqj9DP4Q4xOAoxY8vdXw8-yomhRunbFPjSktgYsc3"; e_upip="AcSRV_dURYXMbGNNcLcawiucHhTzDnWLTzgc6IkV0lVVIB-jE1f8Ntcu45TsS6ADUr9L3YyTF8haxiNFrcjC4Jd1hEuZhGddWd0"; e_fb_zone="AcSnElWLpX4NzA4Mlxkt1zUyVhgtQUdaX-kdhTQu5BzE0WRUQwe2Xb20eGfOzg"; e_clientaddr="AcRBffUxj1-8VMJukA0Ndyk23L7VGuDT5b3I34XAjaBImiN_DB3RF0p-Bqu077fwSjUngT_zauColxEns4U"; e_fb_vipaddr="AcRNFtf8vksqfMvl5Ul7vDebzXDfBINfaeUtVaeAmbUcOXsZlUoCQ51ffZ2rpiWKcTFsQ_bqZQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=792, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-19\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-20T16:00:01.027Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-20\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1460356933,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2925023,
        Symbol(triggerId): 2925021,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 20-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AcA2UYfOQ3zeogUPjB3Qftw',
      'x-fb-trace-id': 'EFDtqRstsgp',
      'x-fb-rev': '1043460708',
      'x-fb-debug': 'GCe+OU+mAwQkQnVIjVZxdav75dGlscmt4jncx97hVQyLYWhVWNPHePDHqE4iXF5lj8Si+CQfN1zoC9r5UxLgMQ==',
      date: 'Mon, 20 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcR-rU9zs0DiAfCrzkzTauuqJillhMtsxm7fg-pdL20-ef1fi4WXOjtqeuxEy4DdzPUOVi8SPKEscdiwPFeo"; e_fb_twtaskhandle="AcRQjrLp35I5V9_H7l-wziUoPE6aeD7MJSmY88Mfav0mVYlkXGJ2UimV5v3d7TP3dzLKFozWmBvEez46sJ7sOoh6bcX-Fxzo3kvViVVRRPwbGd0"; e_upip="AcS1EG3o9L70GoZh7N9TnyQ4t6Wdfh3jNgcANtsQj-3oQJYCCKvTvAyNwr-h50aVUkB5v5-x2fiu7gxLg6txmlM0NmbZJxmi_WcK885VM_o"; e_fb_zone="AcQhgUN3OkFPpdyf7CcqNTSJYw1itS4gi0HupmRjTlxOOycYpajwtDA0G3tiJO2b"; e_clientaddr="AcSQcWy7RnOAiYXtA5KKY81H9sqSM1b8V3PMZoffyDt4oIj6TyVansqaJ9mnksNxcZ84kGGLN8Ii3xgPfI-VEpTm02KQY2nEy_e75Db43IXhQiIw"; e_fb_vipaddr="AcRL2gTb_GNgg6T-KVw7Q52SzbwMNLQMR-2tTv548kPUzB2DeTIiT68yLZB3CwLe-k_oc0XhDulcSWwv4Af4ODTOoj4tMT-7U80", http_request_error; e_proxy="AcTqvBsVchrlWzdRA0e09-6pmw99JHfoJBogS8Y64APz0bhMY7SjX_Z6aH3bL5Lj-NjVP24C2Rt-swA"; e_fb_twtaskhandle="AcSud5g8jlNkbMMVFe4ekvjkoyzg5GvnIH-yl9_rtvhXBVo8wVWWY8R0ZYxXuifEAwynVg9t6RSoo969zTcWePw46hCq9tAkBz1h"; e_upip="AcTjAsXJ_70YMbecgvVETHpc-0DSXk7QjlEfjO2CnVxLP1bxSi9L2STYdA7Qa6Tiy5BQKzAg6Zf02iVJra6vmcccJLBmby3YT44"; e_fb_zone="AcQCiAKGPaplHnMoXdFuCvq0L-nlutPnsDGv2TkX9C9OXRSJiHryPtjnTHPHqQ"; e_clientaddr="AcS2mJvw6W2sSDkK9TsspvzNqTJfrlBSmICxvgRwwZprBjLx503soYv-aAkPrxxvG6UvOJZpmG1icWrGEq8"; e_fb_vipaddr="AcTgHhCIMJhspo7HbYIPCZwGCJAVaog6igNcBb99wFp61RA7PwWfEccnI01tLaPzISgwjbZifA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=266, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-20\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-20T16:00:01.536Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-20\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1823061287,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 3710850,
        Symbol(triggerId): 3710848,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 20-Jul-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'Aio8Rfp94tvkl3FrOGVFSCp',
      'x-fb-trace-id': 'CB+HEOfouwx',
      'x-fb-rev': '1043460708',
      'x-fb-debug': 'F0aQB/2RJKN1to8ls7pNljJIBjyDRp5xmQI39Bc3J0v082bbLj0L+ubq3EQAsW+Oyqv/sjoOQWkh31hD5/ppXA==',
      date: 'Mon, 20 Jul 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcT7XYAaTqVnz_-KsdctN8555SxSduHmAjxjMShG1a0dBikobGFzYMx9S4zHUd_wH6L86YQiyCA4LqW9yVCv"; e_fb_twtaskhandle="AcTqXmmVRYKc56fB17ty2QkolhM1GyUM4WyRUdZfEX629006nMVUV5KV1nLmYirAec34nS5b-40SRHoxXwnEx1LQTJWXXxksvcFdp-i4N38U9VM"; e_upip="AcTEFcoTdrBov_req_3EScHBsgffv4f9P6lglbZzlcb7iHQ5U6Civ7mzBW-8h2KE_Mu9ASk5BxXxkP-xd3TNRGXtQifwIwaYwCulzyfXD-M"; e_fb_zone="AcSpR8T6ZCDRxo_Eq51r5_5JG19L_6VA-Hy-jtaGcg2JGQvye-Gqusd4K_K5Q9To"; e_clientaddr="AcSyJ9cgfVjR1mmMfFNqZcVOx7SsxmTDYflUpvyuQFh8FnyYBaRM0NougQQ-t1_WARPhmicoG9SUz4TIM7mEqWE38wh-S8uFtzDbpITXn2VvpaV_"; e_fb_vipaddr="AcTGgArnehhshwaIVlKLGKAhd9OATHhgG8zVJFDOlcYTydS93dnRiSbIrLcuVpHU2k_oqB8icSSK-uRqm71QX3chPElqHCwqVOE", http_request_error; e_proxy="AcQj3EzjzXgjP7rBk0yoiiFJxJdjmEWQU3Xx3LcsSQH5i626XIxOBGg5Dg4EoLt2_JrrEk6XjRwZcrk"; e_fb_twtaskhandle="AcR0vRRDZLTIM3mO3-sFwI8WaW_yNnhnVpvVxBa2X8M6FwEFf95ieH1CzJLgSU9EIHepf32dsxCsna7rS6khVCsV27HsQaqsznsd"; e_upip="AcRrsuhuV6nJL0rknTUgZnONOsYiHQs7lWj1nx1UL0aJtVdOOaWVwSTenLWyeWqh-edo9hqkq2HT0U1yyZBIu-7RDp1lr62LGvE"; e_fb_zone="AcRbGT9UNwaRHYAeibU34G3qHfhBXj8AQPjA4NI6b2uzj-dDl-UCHvvlNrBP0Q"; e_clientaddr="AcSIBm1QwdRMKc_8-Fir0ExfjbRMjFWM5g_xJzLB0ah0BSS7hQqFem3WegQdhbSbXLwO2wOnIyGm-fNcqY4"; e_fb_vipaddr="AcQ1D2e8c1uvyuxGZcO6vyj2cZtQBCKtb93CSQk8BFKk3mG7_01BO8E4sG7Z2JOOsXsi5NeoWw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=758, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-20\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-21T16:00:01.112Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-21\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1909461204,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 3886301,
        Symbol(triggerId): 3886299,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 21-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AHRlKDuSYEr8--TPz6RDckJ',
      'x-fb-trace-id': 'A0ADLSsfPl4',
      'x-fb-rev': '1043549335',
      'x-fb-debug': 'haogkKvU02AFLqm4K34n3JMMw7XFubag1992xwp2PUcE/MrsaGZFrCefSrTrIUimAmCwcAclEcku0ZBRbysCmw==',
      date: 'Tue, 21 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSZiv0QmCvPrgT29KSezwGmQ1n5abZzicxAQnA1WT84FmlKusdRkyt3zf1lc2tr_FADzsQEbHwTJZTfsW2c"; e_fb_twtaskhandle="AcRUMQO6WoMXFHHLWYbPsC0Mp5TlwZ_Prfu5Ac72OKwwqc1r8VWmPJ-gLgK-VYEC_pDht8EjVHOk4-lMaQWXzJUVhblVeBfs6GstMAkqlY4b3o4"; e_upip="AcS8BT2NFzXHRWQBF8YMPduSNM4X3i2cvoeuvGS6SRnhAcK-tbS4V7UQat5KQAaP-aazckBgyKHcyR-B8_L42lcn7RqVV9YRvLWeyZFQ5gY"; e_fb_zone="AcRf9ZEkIhWeyWjsFBEfi3bP_0p_a-gQTwqSYuMBoco8w66YjcNnXtWzCf1uBptX"; e_clientaddr="AcTV87lEnE9VFihw0Lsgtjlvi3-wc_9vgxT8PaKpF2vjEcBA-BIcsVEJl8Z553QlBFLWdp8PgundlOY1zY6pqAB2LY36cH4l5GIW2lRA_CWtQvFb4w"; e_fb_vipaddr="AcTquC3Ham6ft6oH2tsgbFKJTOJHeFbgU-7kuRwJedXc_RU4lfOjJFHstY3qToyGa_Im_FvJVyy_3NB-kmRhNpcqlhOIbr-DuBg", http_request_error; e_proxy="AcQdiAPjX07P2zE5PEh40TpDD1rOHaaJ6FueOSjHarZWMLbuCOmFzLLaJzQ1LvQORHy9DKEv52RMW74"; e_fb_twtaskhandle="AcSHsEeDO2ueJQXf5vSFCr-labeq4f_neAoeX1kP4V7jbEUEtJxp6V9-d_2GmrrkDpB2XndKfIEaKyNNF7OgIu7b1WUBKrfq5hGY"; e_upip="AcTLuh9InFV_D2YMS4HUaRLS7WiDs97DAqyjEholV10cmXMJ22joD1uhjfYYu2j-OowklnhvLXy4Svq4wgGiJAEPq26xolSaJ64"; e_fb_zone="AcS22VFTAq9QkLtahNMISYph5XU-BqJmpK7vECD9aB6GDiquLSOH4agRR8KZ-Q"; e_clientaddr="AcRdzMOhq9OvgwiF2nU2A4JxpFdtmsdwI2Z-PIDt0C4mrTpCKoxo9u40n-36UYH-75k97YMs--2iIwl5-Ko"; e_fb_vipaddr="AcReg3q2VLEsqpuaoNXeGuvzCwpwuQWz-3NmcYT88RYMQvaH1gOCAmIDv8D40C-UwNlwONEb-Ic"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=32, rtx=0, c=10, mss=1380, tbw=3705, tp=-1, tpl=-1, uplat=271, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-21\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-21T16:00:01.116Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-21\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1546757362,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 3098004,
        Symbol(triggerId): 3098002,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 21-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AdeT1_paVhSqRoFIYjKrztV',
      'x-fb-trace-id': 'HazwBsApr5N',
      'x-fb-rev': '1043549335',
      'x-fb-debug': 'wGkI1vcoyTvSqze8ViJIwYjEVRStmzETZGhHNl/x2Oct7vUG0jjTvFIZKPNffh+W+OWRdf1SVotNgXMRQdN4Tw==',
      date: 'Tue, 21 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSS_UHErc3M75tZcfMRByl6VfNcA2rOA0e5GJtVK-GV9akeJSN3Onv7ElsgSql9dSaWMnUpDKAVk4LxOAQ"; e_fb_twtaskhandle="AcRxP3T_zFvYB4ikqdzAGoFJysYxrDMPXa0KWA9DGoQNT0bUL3ymINP1aMdfCZzqPrFpaHw80RkNjR3ctSUvUXpcnKETcHozxjhML3fZUnJ52A"; e_upip="AcSFlTEYuJ8K1vdx4WVLc9etXm7Vt5O16E0KKOqHw0KJh9dprWLUi0G0av1QrqEcy3dzjKmBLO_aZRGexqLRS7MAe6y4Io0H78wfpV2VDUc"; e_fb_zone="AcQfPFFF2dSbwi2kjBcV16i4b2FML_kgO1wi7y8K9o0PBX5j3gOzRne4i0M8Gf8N"; e_clientaddr="AcQp_ayLayoN4Ib_iLlM-9PKHRbeLD15Eg9hE36e7Fk6GFQooTsus67zx_aM-99WrZyOmkoEESsqa1xGlsoT6E_6yosS-IINWeiDf_T6U5tLTVd_Ig"; e_fb_vipaddr="AcTd2k2yupXKiXs8Wn_8qJnOWwDV4HbmwdCV9-QQpNnZmfrXhsb8mTqbeIxhL8U024IIySHlZvMn0tiO4moP3yn4KDiDuGyTaH8", http_request_error; e_proxy="AcSfA-AhCCHR8tWnCp7byO3q3jIm-bldZoLiG92q0ZwFOj8nu7SmMFCqdohV76P49KKl9LNVwzFctLw"; e_fb_twtaskhandle="AcQqTd_n5HvEat0Ovlt_NoE_stkVpUFt3oBH_nmElY7yGakRzu0x55E1ZSZIG2d_k7Wj-o8jE4E9wXoVUYF-Sd_1KnjCqoeqqELk"; e_upip="AcTFqsr76eAHrLKJ_Rd72JjWz3bnyusAGyXMWm-dSGqWkyUI7CTRaoXAhCgnBFxd9TSjjqcxkY6GM-f_eS2DHw8uvcVCG0yVVOI"; e_fb_zone="AcQeIZ-5vthSPI_gv67uPO6-4k2S7eu4hzmKWcaHETKuJSOGgqQ7qqzmWcfGuw"; e_clientaddr="AcTYn8h-afJEPt4cm9sfeQxsDi5x0sCUZkZnAxiw-0D0ZbbXGIBCDGcKkqc2sZawSrFF7QotPjV-cq3GzBU"; e_fb_vipaddr="AcQzDLo99Q1d-0re_9r385X3ysKFBnldDXSG-jqushMlhbhh11sc5upq3QPphi7kqotohHF9iQA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=32, rtx=0, c=10, mss=1380, tbw=3705, tp=-1, tpl=-1, uplat=309, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-21\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-22T16:00:00.453Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-22\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1995862654,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 4059440,
        Symbol(triggerId): 4059438,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 22-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AXViFgKMRnUOERgmWP6c0tV',
      'x-fb-trace-id': 'B+qIG2mRiRp',
      'x-fb-rev': '1043628034',
      'x-fb-debug': 'QpLLCGfqNNESmB4UK983hb1MmpxCosXqLOrr0nXQeHFbqQzA4L8hpmfg463ZBpKJw+nF4xhWo1e3BkvB3FDs/g==',
      date: 'Wed, 22 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTpWHZTU4IOvhIyjNLuw0n2bHdcHeT1FhOGS2trUeEXiOLK_AddqpSbYx5GKKjPgfRijl99oO_v1xYW0HM3"; e_fb_twtaskhandle="AcSat9p8Sqp--Bpn5mw7ZiXFM6aysbxitfkYTCdhSpoGevPfT1qbH-6_LEH7_DhfYCTwGagJRBoqOW2plHIRXs5di2cmp9kkDhUco1_wPkPWux3C"; e_upip="AcQOneq0qT0_WSDyHhJEzyf_DFqSFkxy0OLEODv-_1HEB6Y-JuOihSgo6VRg6ShqKZz_s12jgWB_Gwwyef0idyaxfm9Djl_BvGWSWFUqkmY"; e_fb_zone="AcTFWEkFeDnR9FPn7HfrCwrV2WouAWdVSob-7KltDNJvyXHvB-ZaNdfzJHtOpENi"; e_clientaddr="AcTC2FhDb3tAqf3dMHfL5ol-0DWKmfOJnmvCliTzgW2vLCs2eA6Tn8bgeYEyeeYp0pIdu0FKrxCZhcNMZPGsuZ-FoXowANPT8evt0faXboJdSI5J"; e_fb_vipaddr="AcRQn0Yw6HZ57dQSydUqMRYFezyLtyTqLj0iZfdMwAEoqRbhXJWf5dcktg_TIHRKTnh58K4-3GCwYw-YFTHnX6b13QnwL010f4E", http_request_error; e_proxy="AcSP7Wh5mV1QXNdeA_b51rxpsYPO2lv4jyWw_0KuLZOGCUKhoM3rST0It_svzh3u7aLYpplu_Ecx_ZE"; e_fb_twtaskhandle="AcRrOIID0gg82oJJc7HV9clolcDGOYozPSy2vrWJyMLdUC5gKsp2iJlOH25sn5wV07NGYh0-veYFDaWo6JTAaBexiaY-Mphjs40"; e_upip="AcQalkBljGR80wDYFShQhdLR6Mbp_eoXyeHPhhPdEPLFA6EMSXeG_uvQAbOAIjOVGyEvzXX52wDnfnx63b9PxeYIxjAOIvsQWlE"; e_fb_zone="AcR6n_tp2RU6U_mKonOv2xlcscdHEx8bz4pqpJT3Kx1faynPNRGrjWCPAc_2Sw"; e_clientaddr="AcS2yWlFo9gckW5Ck-T5zPv3mXStRSP6GiC5J7sryFr6H-THHn2115qEo6gAX4dqSCPM5PquN49dY2i4t90"; e_fb_vipaddr="AcSpJ1vHPqa0QxY522zoAQML1vZHFPANKUFEUTd4dceXLgt2yupAF0d-RU3pvVfcp4aF9SFOEEo"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=42, rtx=0, c=10, mss=1380, tbw=3708, tp=-1, tpl=-1, uplat=288, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-22\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-22T16:00:00.455Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-22\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1633158810,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 3270987,
        Symbol(triggerId): 3270985,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 22-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AwqFszbUcWx6Z_KP2hZw1vL',
      'x-fb-trace-id': 'BJh4QkTda1S',
      'x-fb-rev': '1043628034',
      'x-fb-debug': 'J186VDc8xJJIYXw72DcVhUas61QAZcfXoGDiIb2gS8MkQ+v3IeKFXpzSgLmMrJHM9FCGLpi5pMj0TvbK1YZz8w==',
      date: 'Wed, 22 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTmupRv9_MZE2D-dz0ECvHOCqYVaOGL9786FWqUsCt7afv5zKcqMd984-EQxOWxORf2CO2Dv9fbCozdqr10"; e_fb_twtaskhandle="AcR0TB7hsgC7phObEPXkZsUNu9q2ZNMQ5eJ12QTJZfmd8MHQfcmsMLAvlmVT20V2cQUu_9NVN3zlgY_HtO4xn4dPycgSrLl0p7ncwgEhSjRmqeI"; e_upip="AcTUMEEBYKcgBWPU7DAvLM8BshtS8aEsl3q_K2xxQlW9T-_XkUeACdLWjohJos3RodpBZHCzm2TJy-R-uct9DR_bTkwbTh-3TLbLT0dYYw"; e_fb_zone="AcTWmymEIBbhpKsh4jRgGaPJ-UJW1KPEGdkF1SHQlUjSrys4OuaimtrI2bSf2X2t"; e_clientaddr="AcRlberbt7hkMJyrxUPzeW3X6tXCb7BTfOgSKLO-kKBN-3GbzZY9a4o1Th7X92FKUIYCjlsGpMNJ_gaj6-3RKR5cczXRaMq2W57lNrRpA-t6sIcV"; e_fb_vipaddr="AcQdr3jV2fa_2FZL7zljq29s0Zjc1Reu16hpq1lZS_ytJEQJoF-VX-CFGhMlYNuis0jbwfFfANxVqNoWPJhAPydt2iENkwbIPbc", http_request_error; e_proxy="AcRTzFRPW4ZjTOZRwKI3_43TKsAQh2EtwUddZdFOsXsoNlUnRg5IxQSXrX7tDB-rs08qIXiYicN0w-g"; e_fb_twtaskhandle="AcSaGf-x11A-nyGfzsy14Svqd07097MnfM2Cm2mHJR-qlS2xq6T-mA2nXDA8TOOkWGDHltVVbCYO51pgP_T4ozAGVe5VC_zpV4q6"; e_upip="AcSnM2zHY9zX0xiLmQLgaD4njZCuj9-sqxL9JFyPCnkMDb_V5utAQ8RtNU-3Nh2WQf3H4yGNGed0Rs98Fr9c4olxDKinWHdfMX4"; e_fb_zone="AcTVF-zwwDpwjnmU454jmJUwq37wZUManQVWcCicNfKgPMEXw5YrMzIVrTzPPw"; e_clientaddr="AcQMD5OTBULcr7_QXU0E9IUm1gPLViQYXa5_w_QJn3BGW4k4x1mRW_n243GK9qCejlkNN40Nrszds98JiSU"; e_fb_vipaddr="AcRpFycrGymLk7O2r6xVf0J5Rtwc6gJUqGi_ZwdLdNWW4L_HzbKnrxqoJvYUxy4nE25VlA80L7E"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=44, rtx=0, c=10, mss=1380, tbw=3708, tp=-1, tpl=-1, uplat=289, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-22\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-23T16:00:01.660Z'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-23T16:00:01.661Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-23\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1719560530,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 3444038,
        Symbol(triggerId): 3444036,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 23-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AfGdTHwfd3v95C2zDBOlG2_',
      'x-fb-trace-id': 'CtjznQW1xEn',
      'x-fb-rev': '1043705293',
      'x-fb-debug': 'pcHBWIyTOezFDLcKBL/Y/t653AHi7hF10ufjXwAQ9uL50Q2a53cgQIOjO3R8r0eazNaebcQJ8bVXNNUbd+AtGQ==',
      date: 'Thu, 23 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTGWrazoajdjG58YYquhLrldJdmoh1wyyKn6nUk7qkkoJcTsIYN2Y_-j3_1WDr2tmsrCHMosx9qGiFr-nkmnw"; e_fb_twtaskhandle="AcTRFXO6PhJWMbFvEHzypSnTljmG2lPTy-G2UI0-S-dvenWAQO2lF7qnQe5DwSNGXRlRG5R_XnFswxvNquqE2K8XdL6fWXPgKrwIgppRL_Gg73Y"; e_upip="AcQk7zUcZkWtmoH8croSYCF--uGiu8OBXVdOs-w2t7hv4BvHUXaWclVxHeyFdtbFhqIJJVFUvRmQf5iVzv47HtGEcZjCwkGya1PUqlc-fos"; e_fb_zone="AcR6_ZxC9V_NfBfOP5osIXGqgInTUItXs7nEsg5zXsNDJ1V-nbSRdNPvYa_rwf-z"; e_clientaddr="AcSgVu7SlomqdMOm0W-vqWCXxD6jVq9Ek_vX4IhysdKqIO44NML4rhZ8v6LYc656OrA52bovNKUiWhK4wp9GVWIqhXWweAq-SmEGKz7_kqwrPRzGFw"; e_fb_vipaddr="AcQpgfFHRO8qicO7vtHN2feZVfSrHmHmVY-q1TfAZ2WDADq3eTroIQHDTS4hTOLVTx-osCZa0I8op7kfv9aFrRKdPyRgoMnRs_s", http_request_error; e_proxy="AcQoiKaFfYELQPiauDEorl_0gR7ikJLxwAy25mEn8jXv9VGLMmQjGcy8VbM7TmAA018kjMxV7clAUIE"; e_fb_twtaskhandle="AcT_TNQ_ALZMWtEGkzXSKlGXdrjruwgiJ5AHjfikAqkPXTP0uzfNJ1z5N_D1x-mygrUKzLJd1jmOVk9e_LhuN9dgxULcyOFCYPM"; e_upip="AcSRdK6h_HrYI0h3namWUnhwKW8OATPVICoX-pClwYB3wgjyjsGq1J6i_SNnTIhzdsqIy0b0aI1x-cqqr6orBuPbfCB_66C4OKY"; e_fb_zone="AcSubCfKJCMnxanscktJIbJ8PnQBG4rgvkFOOAXla6AM_co54wyCOcmdBLJizg"; e_clientaddr="AcTfg-ChaUhg_WVPxcGBpYGCrsmHOKQphUgDk5XFFCYnpAf19p0567nvuuQDJvJYso45Fc3iVh6wHHaL_fE"; e_fb_vipaddr="AcQCSfOOs50AqBJFckI0plT3O3MsXO1_cs4aHWM4sOK1yGWXVnaiKE3YYfEk61iN0mMkFX1Qvoo"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=33, rtx=0, c=10, mss=1380, tbw=3703, tp=-1, tpl=-1, uplat=733, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-23\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-23\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 2082264376,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 4233780,
        Symbol(triggerId): 4233778,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 23-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A6Oxb0quHjqY29b0Ya5TQsm',
      'x-fb-trace-id': 'CIVBke+U8yA',
      'x-fb-rev': '1043705293',
      'x-fb-debug': 'sgnJ68pK7ZMcNitw3ZYnomUr8JUjY6rX+4QXdX+B6PpqPu+a2kjS9sg7XCS13pU3xVjV0t0uowp2AqAO1aguaQ==',
      date: 'Thu, 23 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTtd7BJ2-83JNIxx6u6NVPr27Tez130Ikdcxh6YEBj10WqCYhQXywe5qi-x7Vk_HHVXoPHMAp8cadmQMC08"; e_fb_twtaskhandle="AcR-DcSALumpVq6C-Rt6GSWC4r3z62yU_HZjbHy_YcUg7LW7PMa9EKiU0PEFeAKcupJCPvU08WyqBDjudgXSNXqgcG99GvHZkqvXB0D5bONrpBM"; e_upip="AcS5g6hwk1xGbocB7zSEi-7fExUiJ_p2Rj_2DEcTBrTUNAntIXkJ71BEjYzj4ZoSD8Y1U2wVMLcAeyD563FHy_uOKO5p4vdpr8K1vs4JKHU"; e_fb_zone="AcTLI98y0kXNjbjXY4LkkiV0jLS4mhVzNGhQL3vfMbHaxY7Iihev3nvGLEy5Ek4V"; e_clientaddr="AcRd-0oaqsNoeNKTHC04KylEsGmPxhDH9iQwjOCx-LjcN69D39R9gx6L36HlPEVlGa9HGYaPy1aLKecQAqJJGqIaik2wIWtkxqDj80PPfgp_fJEGKg"; e_fb_vipaddr="AcQrMRtisxhX7vQd-rChFNN5dfGhxEmc-kfl8QiWwBv7cKBYCZf03Pi5OXloV9Hg6u8S2Aj3Vo-CVGnkubJL8WMO-wT_Uk1e1e4", http_request_error; e_proxy="AcT3zfzUx48Mv-zllyNd_yAB8Z-eTtIws48pSG8t0o6yT2Dq4e98M8LeLgLDkoX-iFFerWjSrpHxVjg"; e_fb_twtaskhandle="AcQzg6lKtkqiALBFJgqCk9bj_P71lS-1y_Ka6DHqhXMPOh26O-5rgAS9TCwu78MFqSOkTD4jwD8YaCa_UVFfNr47-vByJVlVuOXw"; e_upip="AcR8fhft8FC03acBVqTByEALqB6vSKe_oZP6doO-QYJsBy4k2FcE3Qit_2cySNqq0vZTRF1ewRovEpGMZgDvRVhuusXTS1VF4wk"; e_fb_zone="AcSwS9_8B_aNe5WNhL1hbWObVfziwGTGvwxcTC7VaPgksULwxvej5mWC2oUNLQ"; e_clientaddr="AcSetohowIobK_SBzPA7b1i6itONDAonRQiBZfjNTO2fAmZZtoWh7m1hpMONRGWUD43DAphnviWt7N600d8"; e_fb_vipaddr="AcSOH_gUTCxeUayFZJgnFwShVv8WEuAWaGbgzNaMbQrcMusDbL_viEIKz1_mapZQA0hcpOiM-xw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=33, rtx=0, c=10, mss=1380, tbw=3703, tp=-1, tpl=-1, uplat=733, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-23\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-24T16:00:00.796Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-24\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 2168665800,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 4424650,
        Symbol(triggerId): 4424648,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 24-Jul-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AQlbd8VdHb-BEKI0_5Xu_a5',
      'x-fb-trace-id': 'B9UkZ/ykN71',
      'x-fb-rev': '1043786062',
      'x-fb-debug': 'v1XN+2DkNwoAdR11jGt2p5QhWOelxKTWfgq2iC/gtBjvSr1lGej3t5/4pCbgVnww6aOKs5OfEoeO/APAgozCaw==',
      date: 'Fri, 24 Jul 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcS3naoNvs5Lwx_clq7JZMXHpXj2s55uPzJ6e4feR6rUB-xddV_iQ8xExfZ651c8NZU_pOLku4LVNdH5cXC2"; e_fb_twtaskhandle="AcRDf0iqwGJaEQpV6FLAPEQPJ0DGqEoC60oAhmiq3OHi5cwfFohVx8YaNhihzfAX-OwsSF6aRK2P-yNVgsHLcMoOPxAKN0bKqSTGnf2ixCihRQ"; e_upip="AcQ5ow16utjwLQsyowvzFuuEzCfuLKp9qzUQiY4D9foYmbDxqMeMkA26kure7B28zATQ531VjX0jugCcLwZd-wSRytP9c5-qJaP6DspUlzQ"; e_fb_zone="AcSB0IyqxKocdY62iBDLLFyhzVZU8BpjqufQpzVbPhgdl4Nm1YS4TyASuUitsxr6"; e_clientaddr="AcQa9sBV6THEBb4-jAu9HMldF9CoPaPfQuSAsD3CEFns9xU1hzmYXnf-uWrfSkISt8CEthgyQKYT-68I6BBaXLsBw73ifC56irGfCbKF7WdXThRGYg"; e_fb_vipaddr="AcTg8YWdKG4P7HvNTJmYHW_BJNy-sMskeC6F1LtkYWauquO1pbdniufC6xXcteaW-oOAlG0XEl0PXrADXwun5ZDmlShliyBxEaM", http_request_error; e_proxy="AcROR3kofSyulbKCMWYbo6HguktXm0IGfceb3ueoRiQPUXS88c6j3b6ci4QtbWqyCnf1ktNotmyCDd4"; e_fb_twtaskhandle="AcSZweomK3ok10Kmd5NTPCg1YmDIHxV6OUblAmo7O3iVAx7EKeeATghLz8H3jDBNAGguG2DieECuwnQ0pHTGS-SL9vzKZWQfOmg"; e_upip="AcTMExudr7FHG9ULh8bv1S_BrLTTYy2v4SgR3q4pmddZb0QCjaYUm-vNdbRZr0OP8mdILUxlqhK-Jle1bkiCRCTzhzrqds1p1y0"; e_fb_zone="AcRIsFzEjqzXeW9K0Y4l6O3LVPlg1KrpVoknBG_vXekPSFo0sf92mkqg5UH07g"; e_clientaddr="AcTl1LA42l2eyiXlCc3oHjajuU6dkgAnuALtLWsdiat6o4lCv3FairD_FlUULF_xaYIB93_WjaS8J6BMqeE"; e_fb_vipaddr="AcRBqrI0JatYKciu3NS2DuSbvyqmF18_ONrPNmpwUgsdI8n-PKjqrhZpgSv42KPEx3QBSQiGVqE"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=33, rtx=0, c=10, mss=1380, tbw=1468, tp=-1, tpl=-1, uplat=300, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-24\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-24T16:00:01.151Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-24\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1805962310,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 3617019,
        Symbol(triggerId): 3617017,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 24-Jul-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A_hCtCTrPEN8aONp8qCFwKW',
      'x-fb-trace-id': 'Hmq8j5PJsGW',
      'x-fb-rev': '1043786062',
      'x-fb-debug': 'EfVu/N+tZ2N61OBapnaVY/GjOg3zHU0n0Ya/KKaqDxNtjL6NO6aScN+5dSKav8BwHFadyMqTX9eIm1AcfVkZTQ==',
      date: 'Fri, 24 Jul 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQcVDWNYvXtXfQLxEvy6yYi0xlHBn6BYcUI1dF55lZHGMnFce8ESrZ6TlClG3woNwQGvAqCJcceSI9M8Lxo"; e_fb_twtaskhandle="AcSS0KmCH4_GoP406A5Z1BX_C6nzDlXqd3se8jgZhrCbA1TJmi71DMdiXpjD3HYR1kv3CvB8WCTXJQ69aN5Vjh99CkIKnmWmpbayfbmJGJHsy6M"; e_upip="AcSfzxlD2jhFNewsVeSz_5LEjwdn2CoixK6jMgmgydQtJya31DI42YcWEkEGOme82NQ_R26FFRrsyGhqREHsiNi3rV4zJGVYwV_wL5NuH5c"; e_fb_zone="AcS03TBAxHkcxdXFXSsTanGdMeGGG0NygEVQ0qOtlSd_2Pf8-FRvgmOhVImNAlEg"; e_clientaddr="AcR1oXgOn3MyejzOE-lAt_ZbHIKvdAhlR3IgdBBJGF1xqXXqkNvt4_xZ05rMaS615yjjHFyhq9CCU9lI7OZBE4TKJwsUtvGVKF9Kr3y4z5QuCljpZw"; e_fb_vipaddr="AcRu2pRN27RAXGKS81iN5mIWe1WOFjYOelWMloSabVhbqtseB26jWqgJwPz3bXYZCe8j3-Ih4K5ue4AxCw5Vn1ZfGIMPnnoT4-Y", http_request_error; e_proxy="AcToj9eYREEvmlX21jaY_SmlWORGziAnioyWRyVpAW4DeMaSyfuIQroI4EZF4AnjRmPywIDXoWgh92g"; e_fb_twtaskhandle="AcQXoyfxsIx3fqVYt2w09m1O-PEc5CWmNpcaWiqqdQf3rUKFOBVEVUDHaL12LDrkNug9IFmBleRPxqoDXrjgK3AeGAaSVlii7cpX"; e_upip="AcS-Z4uyHFLFnmq_cmxgy6fuG086xwircvPH9lEb_ToFGjjpbkIifFFYftkBksUa1ABMZsho99n_8AwKr7_1X0Vf0SK4r0vfLjU"; e_fb_zone="AcSNI7__8MozAPitFxGetc7Mvc4jI9AJX9XeOwbkxWSG9N6P3A4xYTX851WdQA"; e_clientaddr="AcQ4D2gYRJ3KPgk89h7N1zpaGbZOpPXttKeYnnO7hH9br9Eslmd1RBf6pyjK-8F5cTnBv40HCqVxZKJHqh8"; e_fb_vipaddr="AcQsTUJ1m7rxb6qBLqyh_2MADFUxsfVWwMybPnbU8bFJY8qvNG5JmYtOLeNXjaUrz7Fs-kvX_zk"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=33, rtx=0, c=10, mss=1380, tbw=1468, tp=-1, tpl=-1, uplat=673, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-24\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-25T16:00:01.186Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-25\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1892362539,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 3790023,
        Symbol(triggerId): 3790021,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 25-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AjkrdwBbTZWG2EaQjmop6g_',
      'x-fb-trace-id': 'CMKDZAK3yvN',
      'x-fb-rev': '1043850389',
      'x-fb-debug': 'R/XYbrBdaJMBafK1fYeA+UWzEYgUki+Mm2TuWz2ox10v9Q/khIy2a7o/qYxRu1s/inR6l90/NqomNrJjXiL5Ow==',
      date: 'Sat, 25 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRuteNjD_TzzeNvAlcYKS2yEH-U7y8gwFjK6XnBpNA661yI9xPlAISD6QgM48nlEhjxoA4_aiYYgfSz0_oq"; e_fb_twtaskhandle="AcQGKqtTABvAvYf-NtCq5wpuI2ISVpatY6sQH9f1Og4hsV73y3Q4hq3429uqFXI51DyEMCWQ9yTYboxNW7zWWg_7H60E7lv0070XBoq0ivS3Ow"; e_upip="AcQEtO5KkxJYGcqNGjnRSnMvoPR6xdsfq1Cs5-o81wqiMbQ0g3Jr3g57eYa6sB0horL91yzDaj-PzSJHt6BHL_xlZGqXYhbXox7AjynCprQ"; e_fb_zone="AcRvXv-wrrhmG7Wd3lHfMXUKJeIHDkR1GK1ZeJS_uFGh8CJxCHFEaIq50CWnp43r"; e_clientaddr="AcRry5a3Vzu58w9AC7y7QKBIlQnmsFPFLp50B2Q8QRDXVuK7n_8qPBacXPPcVq270icPi4uzDpuJcjLnxugFUYukJ5iy3yrL3gEC7Y47R6jaf6YN0Q"; e_fb_vipaddr="AcRFq7UxVN6yc3MsfsjPkC3jWfSsJNcPu_EUvhq_J0eAQEirWuMuOm3z7srPeRoMLrd9NkBh_fEDR86wmG9OeaJJfqEi5eVuWMw", http_request_error; e_proxy="AcRiJ3hkSxQbQH-8yqFBvJ_GZJgDQF8koJlQ9JlOdOK-3pe8iSVFnsIqGzHvhQdBwVbiiKa9qzHNRXc"; e_fb_twtaskhandle="AcQBNm4kOuxOmRNEra8R6Mq0LzGA3VV6W4wkZggu1oMEO8GNwLggnmgHOFCxROtORVOVm-qHQOhQjOG2NH6rSZzMp1VL57Ced1W5"; e_upip="AcQvnUwVNaOTyAQEjX3BITaZRO3FSyklFGEFQK0B6m8nTYbE5-VGGUFx9e4GP_CKuudrrthFX3isMGHauQFCGDG7bw4wma3X6W8"; e_fb_zone="AcTicl-l2X1gXLuiShohk73dhxzcKgrdJ9QBDpgYxDJX3HAptaWtGfbnlXNCwA"; e_clientaddr="AcQ9i1F8MuoXJLwDdeiOS8z_ZK6A9i5Sd1j9syPaBMr-uHSjqtR7CrMVDbZGsbeLHvspISBNUJohuI1whPc"; e_fb_vipaddr="AcSHB5mpS8n69AoEXlVB20LJOvJIs7gVDTFKnoKxnYLw9VMmTHKKcy5I7mS3eKs40jwvCLXSJac"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=33, rtx=0, c=10, mss=1380, tbw=1468, tp=-1, tpl=-1, uplat=267, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-25\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-25T16:00:01.581Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-25\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 2255066780,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 4602594,
        Symbol(triggerId): 4602592,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 25-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AqiQBDclwCGhrqla0wM1gL2',
      'x-fb-trace-id': 'AvYotiw3GI4',
      'x-fb-rev': '1043850389',
      'x-fb-debug': 'uOhVbUbm9YKy9kWzyfVn3LaDojYSVXnCBajkI40yJGg1Tl3rZRd0pD8V8YXtqG5uGs7ORKgEkemMw1ZhkTe50w==',
      date: 'Sat, 25 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTg8lnLjZQC6latdeOnGIBybS5OqC20Es51CORA4pGdAj-sPv3ipEPyONeVEcSFjYKUBvOI195ZkhMbtzL4"; e_fb_twtaskhandle="AcShD2htRLCeP3us8-4rfe2Gg_mhs8iFaPxQ3xn9TOcrZO3se7xk4I_6dHmRZZftJb9H8rSq5BLbfK_ayQiCymh1d2AsTNBJN4DGL2_cLOYjXeM"; e_upip="AcSnf6mdda7mE94HFI9XgQSVnTLN6YzkQGwj3IGX6FzATNMIKxZFvxqfL-jOoSP-d6yvyMVVOV3FoRqgtPM1U31LhvB8ohcHExlIka5S8w"; e_fb_zone="AcSxj0LGr3yD1xBJ4gUvDBMnR9yyIu68JxJ0pfsyosYcLNPTOOcN-DJNcYiCTODm"; e_clientaddr="AcRnzIzY1FNSLH_fjk_u27lTREzEnyonSTVnlgE-eqnwId3hO_hw8T0en7XDGEMAZB5Tl0p34oR1u3K3GIlteRVdbamxdxsNoffneTPZjMNDoR7v"; e_fb_vipaddr="AcQuFU2_6xGZlBpb_oJHFXoq8Z9-P9-DWOqh6SexqdxMi4KpHHXhEYyqMHe5Cles-SUi2YeLdcUpmFRlpBY0SURvSxJYnOhSdhk", http_request_error; e_proxy="AcTIyHfSxFIf1l1o93pwu677PorG5O88-HsoAjCN3BjN1kL60kvp6Mz4e9wlD491K-4h-sJwnz4_Uqs"; e_fb_twtaskhandle="AcT_fuHvCvxdsAPAqKUFfj_9iOM1BiaEi9dDZZ_zIfJdpmt0RtsFTY6-ExlPPV3FdoEys8_B24rXwY6_bCSmcOK_5duscB4zFuv-"; e_upip="AcTqL-US3w13Vj4kjCUoyt8Hds2Ji1dnghX5bMQS1_-c3nSPcnwM1LaOFwdy1XGIdmu34bKzUjx7wwPJjxPtlJ14lKh99-ok8tg"; e_fb_zone="AcQ-0Z8RjKFB4dPwJnezIpHCDsqG_-C9_fvb7_qX55fZVlmyN5ZMN4jGwOED3Q"; e_clientaddr="AcTrmJX01vSLvOuRAw9Q02g8WCzz6VnLImflQLEXGapDYVPmZ0f3d75j6mZAFXGmXxn-XO3I-BgMeDEPvl0"; e_fb_vipaddr="AcRspcw1PHcfPe61Z4a3ODOWeLGt4dPMLeOvpNn_sFY06TQwv3cpih4iFOPuLCC97hNa12ifuCk"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=33, rtx=0, c=10, mss=1380, tbw=1468, tp=-1, tpl=-1, uplat=657, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-25\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-26T16:00:00.408Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-26\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 2341467070,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 4780337,
        Symbol(triggerId): 4780335,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 26-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A2a0EYjQCSbCaAbSsCheImn',
      'x-fb-trace-id': 'GFZpP/P8JOw',
      'x-fb-rev': '1043868492',
      'x-fb-debug': 'jXXBKKVEOAiB8LJVSoygfDQ/DChxy+EVlDB82zvl9TNDp5xDLllLAtVg7AmiW4xVyszsMn/TWfhrU0K7r2TMwQ==',
      date: 'Sun, 26 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSX0jqZeXf6Kalyer06EdwnzpQAMxUTG6dMa4KNPyYKmWUdEpBtOqNXfEuQtj-NtnuirKKXqWhUgpeY7qxj"; e_fb_twtaskhandle="AcSpJd6mgz9wZx5t2eKK8W6IFIlmB-bTTb9n6guNq8m1mR04-Fsmlcq2lT4MTSCvFdtg3QSURF8993D45dIKUem1gHDwyXgfg1PO3BEjoBBXptw"; e_upip="AcSt2T8xJ8RzgBnyQjTdLBjq1GE5f7vnWX-Al8M0xJa6Omt1vKECxl5n4klHG5meJyZS1YYFByhi6oFmgAprAFGO_6cgNDHdozeY7HLhoQU"; e_fb_zone="AcSfwCTJ_r8oh1ZvC72MGgqRiHr-XA0bDxMiBErkEYEnCxa87jAa1Ez9KBfZiYk3"; e_clientaddr="AcSV1PHR33Ki6n6-donF1wT10iIe3H_3itnx-RhSW0sF4QU2S2E_-6t4Hbr1vBHFMs22C5tW6wp_rCfGgZVLyLcfKNDrKcIU4FQyCs4Le0wKLoyA8Q"; e_fb_vipaddr="AcRXeqhoqvUwjiDwiJipM2nqbCHRzk7ImoHNNyMI_0wPlsSeNDfTC_N9lkNFM52Wlzw-w5ab7bmXIJ7QVO050vQscZBnI1Z1c-0", http_request_error; e_proxy="AcQoufI2vHNqjuXNPrJLWVS2mBQ1PZ1UYR_zHt5reFtD0yRbPJE03iTuWxBkR8aZIrI3bY9Zuq0b_d0"; e_fb_twtaskhandle="AcTFKtD2zuTnDeWDnjVgbom_esUaaRtPkDLp6YOEGpmjg7Z4l4_miwJyKp1bdZeIOKv2rwOo3SZ0un1QwcXMgEh6xHfp_3XA96pqaA"; e_upip="AcScTX-Y67mKs6mtJePwkV7qYe9gA27SnD6AVuJv8jO6iRgYV_WfAZ7iiI7JjNYgjZh9JejbXmlY8nnlQKKLydknrLGKiWjlAlQ"; e_fb_zone="AcTW-NBA9Wdgx62Z8eybhZi8Nndxb2QyNbBYVReiul0ExP6QDaVyjoBWHhzfxg"; e_clientaddr="AcSpoplpInOQMvfdch7dBpvO2pNBxNzmQhyYj4dBFvVav2-nCWNwB7A8xqBvfexMlk7T9TYC7xSk5KtBfiQ"; e_fb_vipaddr="AcQu0onmoppx6VKHC2hIRJtEcLj8ztLL3x9LGa98ajGHHLSfNXR3prOMUQtzBaG02SjUSQq_Y_E"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=33, rtx=0, c=10, mss=1380, tbw=3704, tp=-1, tpl=-1, uplat=243, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-26\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-26T16:00:00.835Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-26\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1978763650,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 3963031,
        Symbol(triggerId): 3963029,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 26-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AWGKV_YYQLagMyApjhQPJTg',
      'x-fb-trace-id': 'AyFV//q1eBl',
      'x-fb-rev': '1043868492',
      'x-fb-debug': 'UAx4MpZX5i61eXf4vnvpKZgmv88SNGB3fzl1AdyrtaOEADQfSammLL+H5ukAtzEaxUQOcUOFMJCVKNBLyF8+bg==',
      date: 'Sun, 26 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRL6B72StI4A4OgDktcIQbow3xHxLu4UlRZ2IKKBV9rIyOn3a-I0Jh1pqEFlFU7Yi_SChjjWfxMCi8MwZMp"; e_fb_twtaskhandle="AcR_5syuBiNtO4b2G3rmQgoMjfi_a2irKCPbuKcEneAaPXiaf9aV1PoZJUjCeuVh4ft9aROhVaRHLbqAtVhNxlKB-fxZkodFOe0iiQhrmvmjs-I"; e_upip="AcS2ep2y7JHTQB3N4icuRy7k9hOjqEOSWdY_oS-IN6cuXhKveNx6EauKpXCeEeQXEVu2y2RrDBnRj3SPkBUpicySrEMrCdq3rh66XGzcxn0"; e_fb_zone="AcQn02mlrbLqArzKcf5lMDW4BzrFcC_dWThtosyQTA6g6veVGffY85MFx68VNY7T"; e_clientaddr="AcSX9_IhMBTMHba3-u_3FqBndS9-ZoPCbjyqF-eU9UNJ5j6Lfudv7J5x5RS1y8CE1dsiRb8RVBkk_0OT62cTOTrpyQkokWS_4bMd0RktNBSg5P3Q"; e_fb_vipaddr="AcRq0T9_QmEl9IVIRv51kIfceWm62NbPNdnvH-VYTHp025ERfMqYZ-fv44zcQzVEKgswkzgmeYmQBi0A_HplbzryMwFV3ABZM58", http_request_error; e_proxy="AcRo3Vw7huKJDqFf-jI43mvoz98l-OYWMSfCesCLXbaAbMCxY1kYdq1_yMjxaDNraAb9vuS-ITMsiPw"; e_fb_twtaskhandle="AcRS-wHdfyAb4MGZvAERiYu9s5LaUseuMpe-XnvFxQYVQGYCt-vaNjTBtbNkdB7ZCrSwp34_-ofGpQzAP6QpX88W9CA7lUxVqmtT"; e_upip="AcS9fMbKeZ24nB2NIilZDDAHlc1hyLvh2ab59u-EaacLTuNayFfa7iGAqADJD6koXbRgbufODKZ8x-Lp-9uChZs-8otC7xKQz78"; e_fb_zone="AcTV88mfpU5cXm4lKJ20hyYY6yuC6V-nStgg9U1AwRFZXs6Bf53BIdOT7HZNNA"; e_clientaddr="AcRABpTHmLrtxGiB2ArQvhZBZ8sXHfNffcChBIOqZ19G4DpqTZoV_sC3kunWg1HCz93QcdTkRi6AvuXoHSg"; e_fb_vipaddr="AcQ1BIgDg06admdw7U8jw5x-8Vdi93mpbgkhqGp-mQ8KUBjAUzGOauGr7KZRN2gz7K-JIwFQQSA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=32, rtx=0, c=10, mss=1380, tbw=3706, tp=-1, tpl=-1, uplat=684, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-26\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-27T16:00:01.740Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-27\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 2427869121,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 4954969,
        Symbol(triggerId): 4954967,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 27-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AxOLWVcTy15bFEEJEe7QBVG',
      'x-fb-trace-id': 'DS7GyVWtCXf',
      'x-fb-rev': '1043893604',
      'x-fb-debug': 'A8LjwLnrbKxuaAIePwxbz3YBmSpaTGvvqCHaJ6F6I3UTeZcDB3/wwmqa+ejdB2QK7nJNWY/5MmMwBbVgbWnWsw==',
      date: 'Mon, 27 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRNlt4eat2rKb6E-N3YfwfeAwoLTVhVAhfKY3ZSuKFGrL_R61-TQstVFMVEn4LjM9y7Xvi0fgdP_-cWgKYR"; e_fb_twtaskhandle="AcRIA7Cp4ZPbEuKGvD43rTKIXM_SmOxtLMsjmXeAmmQu2qEJEYAyj8jse4vl90Gv0jnrgTQdRT0Rm9t4iGEyC2ytoAcv3ixKWsa-27mwHx8BapI"; e_upip="AcRS7QgBV8eH7Zd9hrdR3GseRRAzWxNXJct-GenkbvrruImIjHKzILhMlbDvXr_G9Cw_zSSWY5nbmXpJUypOCLCZ0MaP0AL1k54xcgwhyAk"; e_fb_zone="AcRNIFxZy1Go5O46aPVX3ftyhPw65xAR46lEeMqkl424iCOUOp3y0L-HbgVF1UhM"; e_clientaddr="AcTPSEhReeUSrMGjBIoOI49i44tYH_80eEk2IaSAB2TX0bT0z9NYG24026MUT4N4AFyT1oRmrT47irfjQX_0oHFa12puIBkYpAd1E7cOzUDsey7rJQ"; e_fb_vipaddr="AcTx6V_4VfTtO-NUmblc545ybuVC7nC9cMO4zJGrwFqw0CN7-X15fwNJUuz6emvarwbS9M7N_-Uduge92jL0DFZ1DZrK6MTEbJo", http_request_error; e_proxy="AcTiFnvUa__dymylSCkArjONJDk90WKktdJ4WiUVzvukIjl8L4YPh9IbLLS5irOWuM0B5sAgIlQhD-U"; e_fb_twtaskhandle="AcTHW-NoW9GRv1ruruFDn52zp-ALI6eTez0Yv7pLLwphNqrDSwolJFsJIQwN4NdSc_mTZHABk6BESh3hy2OLpc4PeKkgedEKULg"; e_upip="AcSIvPe9rehk-fNSHp-56KwoZN3Zx_MANO7di_9xP-lRiFvyuS23_J_KW4PNZhKYwr2h3giPehTqFceH5qwW5fd2RJakxfrqfK8"; e_fb_zone="AcTxtl37_dV8Pik7Epv0TFKD4bFe60LKygR3gJ0Gsi2p9vpjSXVU8ZWBqOCzGw"; e_clientaddr="AcSp9kSRkzHNstPljAATP9Yqq4quxHJbj_BgUwEzXWjFTWlVcZLQtayxlhACAR7LFMRO1uKCf0ky0_-xaNs"; e_fb_vipaddr="AcSY-1qgqaPJ1tHzI6XseieoJa4DVtHg6yyof50zw4_Ge-ujW_BTi5frP1TGjlPjfikfNuFmug"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=33, rtx=0, c=10, mss=1380, tbw=1468, tp=-1, tpl=-1, uplat=667, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-27\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-27T16:00:01.785Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-27\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 2065165320,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 4136040,
        Symbol(triggerId): 4136038,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 27-Jul-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A1aiDkrAXv_b_B-vKam0tjo',
      'x-fb-trace-id': 'AJb6PZ1X9zX',
      'x-fb-rev': '1043893604',
      'x-fb-debug': 'of/y1KQo16b03K3vYVJVp9hXAS6Pit8xG5pOEKEBsT409imePjKzw9ThjelJq83vlOMZHwrp0Vim+tplBdYJWA==',
      date: 'Mon, 27 Jul 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcS0e5XHQHx-42FdD2xHo-EDxBUOlLPnYjbeAdND1GNOgSOOkPGE1EutA3pwqtvmHxltJh0joPnoSRNkXT3U"; e_fb_twtaskhandle="AcSfEdZbp5PdQxMhUbJ4X4JJE3SO6nu66YK2nLNUzLsYyQU_5eV6x8VHM0vyS3DGIkruqjRtPj457fjPhAKGZEfdqF2kQl4Ou9Vrb8UBhGaof3I"; e_upip="AcTNp0OZDMNM-eWN8mb1wqTECol86bUZCeIexIqUQQByBfoz02aS7PHf4U6p9JDRWNRhe1H9PeGeKVjC3IaY2p0n948u08_jzzJ4kC1C0PY"; e_fb_zone="AcSaDXi2TZ9pudjkDmwYxYLYeMa9IXKD63u46cbEEiGiGAXgQiSI093Palmr6B1K"; e_clientaddr="AcTPgcl4iRUXxbzfRANUlyKGJx3V_YSn2_D3-aXz5J1yaoiPLOOryU5w2j7xuWIUyChj2Holl_CMj5D-QqgtLicHGW8Fo6Ecs1EYa21jDDq2Q9juhQ"; e_fb_vipaddr="AcSLuxo2o5eF6Z3Y0wXcxxxeDtPJ15EjQH2iuqEUh8uPdh17AvB1fNUMqT7lM8IFyACGeLkUi41tJXle6oYcq2J9ZYKZ4oqXhhY", http_request_error; e_proxy="AcQSA1vC6KCqQeamgM_z23Pc7uO40QYaMKstbxwDszvN1mI61wN3kQO8yxiNi-TtHbwJlaf4uJQZo50"; e_fb_twtaskhandle="AcSCwC-NQP1SXA5Kw-DOqUJ_sRpfoXulUp_jLqlShaKhph4zPk1CSkbCwog5ejmaPV2nMNq3Hs3j97ZGH0PDhep06icibJ0ktbI"; e_upip="AcTUdmqx68fmSPvvOZx_N6p97CYsdGZMhxy0PYqu6KdO3owiNKEycrCN-HRjCgDDXm718s7eJI-5wF1K-874rfbb4VkXlcGZJj8"; e_fb_zone="AcRxPTK28-pC6y-1nGD0T13BK8a_ncyK0Tp9Lm1Y9I4LWhM3UNN-qnDm5zgY6w"; e_clientaddr="AcRzGgczOxHW4OfUcNee0fyeVuTEG3OrUkEkLAcHXUsD5FgE8TljYSg62YYWqy94f-yOm5s43PaZ2BlLY48"; e_fb_vipaddr="AcRhZc-d2VojkgiCWsh7fPXd-okvFIZA76u1-FAQPp_vti--Hl0XmV7XMZ4cJV0sq4f830cBtA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=43, rtx=0, c=10, mss=1380, tbw=1468, tp=-1, tpl=-1, uplat=683, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-27\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-28T16:00:06.342Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-28\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 2514275341,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 5130604,
        Symbol(triggerId): 5130602,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 28-Jul-26 09:00:05 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'Ac0tfU0W1yH2hlZNDDKLeHa',
      'x-fb-trace-id': 'A93K3huRRjY',
      'x-fb-rev': '1043986535',
      'x-fb-debug': 'YV0+zxM/64lECAZk41GH6JdmK9N3t3omaiqhF94EitAKo5CWQD+DkDUxHYFOHy4z2Z6YORGMmWa7pKhrB4ClQw==',
      date: 'Tue, 28 Jul 2026 16:00:05 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRGmbEt5roGk5Focm4VJir2Racwzs3JfsbTk1UPgNp48vFogIMeV13hErS4nDqRyQZAQv6oCdO2mvTjMmBC"; e_fb_twtaskhandle="AcQznrMDZjmjCB86HMciMOmkAK541ih492WnG2uI2I_OgDMZ90TXeCw5g5CollgmbjtSR1YPMYxpKvKD4NuG0ux45QXOf2j5o0fTZ3lMFaYHOOw"; e_upip="AcSueLpuw37YPBgtCKrZFMI0txl_nWX_c3yWGc32ldmPkXw-6VIz_Nd8DTM-1T0IyBphfdCExtGI51Lt9DXan0e7hEgHmu1lPieIyR1-BDc"; e_fb_zone="AcRSNZUzuyR0BjvF-N2vgVJVLRvUP2X6LvJbGjV-ygvOv-XJrR8iAHf59FPmiTty"; e_clientaddr="AcQXvaENhTvRZ5-k7lWWrwHidTbLsHVJtiSsHUk7pmpqNAEteowTWNz2zt5MVu7nTsaojfw_oL-2Y69qewne-Pzd6XlYaOkkfJ1vYQjlsull6yv5wQ"; e_fb_vipaddr="AcS1X7ntd05xPZX2IFKyEYkMREtxEJvsCjS4qP6uyUHcXUnP1PK9YCs3YzU59NNnjl8Sy-BXZGJ28S7jvmYLk5EBaL4FokO-IR4", http_request_error; e_proxy="AcR6JmT_lWcfODWRp1x3Y6ZG0E6tWV9JziwVGR1FzsdiRcMaKCWqDdhvSQ5YWTFDBAyOazzkaoHatbg"; e_fb_twtaskhandle="AcRinnec9dwkO830EL-5xKX8LBKskJU8CVyOwnSxf5mcK2hjBHNS0TVY8f3uSuYqi5naNLuiKi13V1kjFEo2SBfDi1-ilXnwg68"; e_upip="AcRKki8oV0ccpmB6iPtX1E3BTRo_95rxOYdTX-Hek4pSoxnPPQSWYzeSesUf1AeMSh4CbLvBWLDDRKPQ4RSIJT_7ISP7tjXu8x8"; e_fb_zone="AcTzsUb6sB034cZgKDdad1z2b0rQfUFna8dBdL812og5HeUMhVGsmyYP8EKGxw"; e_clientaddr="AcQfFCRv0CnwuKqwzAsx-lZZBQm5caxnW8Wb-CzoBZfJ83CvSriswFG8ntdSWCnhhgSeeZvL5x-9dAQ-6aQ"; e_fb_vipaddr="AcTJ0IxVBkD0CSSu3tohvgJKRr_EoaBriismtwP9ZEZvyUK6bFQ9JXCj-Gb_ZbD-YGZ1YG4A13c"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=33, rtx=0, c=10, mss=1380, tbw=1468, tp=-1, tpl=-1, uplat=740, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-28\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-29T16:00:02.073Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-29\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 2600672002,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 5308620,
        Symbol(triggerId): 5308618,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 29-Jul-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'Axi8vsUtIJGfex3gwiVj8Km',
      'x-fb-trace-id': 'EDiHGIXlsze',
      'x-fb-rev': '1044071294',
      'x-fb-debug': 'IWAkTvVSUQWWqbgGf4+kzXFvm+wIhXyfN0tVOFrXrYQmASgnIyX+gQC7hrZREEU62sV8fv4EXyNZJoxK5xayzw==',
      date: 'Wed, 29 Jul 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTYjOninzflay1KMsMhTpJ-4lsDqeCacos87-qKroz4pia5ZP4oJy6AbJUSMg8MujsesbaG5mq3CnbNduafbQ"; e_fb_twtaskhandle="AcT6LFX7mJi2wlz5kEPLqqT--1o_teOeBkVfj2cCuxKmP0YNGH2-n7VAflOmkCuRyed-eRjWIfTCalJ7iXcR6Fp9Pnj0DeCLJlCHSw6NODFjeig"; e_upip="AcQz1NHCPWdNFI7tHf325h5W_89FJYwwR18bp7KgkRBehn6G3NANaTjGXmoxh20P-37gZAP0daBShtvarU_LEW3oV95X06gT_Yq32sNWw_A"; e_fb_zone="AcTBQGoTAKpEiSvMvQ8Emv8KeLzMd9k_6tYzVjuOa3LST9lGPSCumkhvFTaI8p73"; e_clientaddr="AcSvd7NC4TU6M4iFud6DLhSJF8orSbNTra0sSIr5ESqkOZbib9889xjYpHHfACAMEb9rwU7UGEwbk6n8RfPM6UtegjWIBJkoRaIbtE5kB25xrDnJNw"; e_fb_vipaddr="AcTj_0nHvzjocMXIcDsuCdC9xjCsK98GIncWQHJ5BBWv3mboTtREmaY9qm5jR2DD_HpB0Gn1GpC3jC-FQti1WWIFoZgyB5vLWkw", http_request_error; e_proxy="AcQmCPFSSV2HvQjj0JvvTYGmy9WYGXI8OWQBVmJPSfy1FS4RgpTTThBabcyOsSYtC5UmK_rpMmfR3Bs"; e_fb_twtaskhandle="AcQaQIHO0nBjrtcytRlL6Qoxzjdlv624Njqd4DfneIMtOM-TUdSLyynMJdJW5LCQ4vYoBHCcVMaU8vrEVwMmCOc6oyIEFW0BoC2D"; e_upip="AcSBhZLJGvbapXtQhabEG935FbZHZQD0G7fZlH4XIvSfr3dwGP_iESvD_g5vdgK0FYuH_yT8pAFWI1-bqaVSnNW10YT3grkmaas"; e_fb_zone="AcR7fChraLqVDV5YvjtZbdf_0pt_J_YVKIRkJD6xo4dSGtIZGy9VdoIRBil0jQ"; e_clientaddr="AcQbXFsW9rqi__w-6AAUCdN84ZcQZpd47wW3j8A-851Pca4qGBHVAA-V1kkkSi_X0VJt7tZHQD5EmOMcYM4"; e_fb_vipaddr="AcR0FWcXc8hTvNrtDW047nK4fcENMyMsK1dIzaHnuNkl3P_6mbc1f12hFw6qTfj-qgqbz-E_TFw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=28, rtx=0, c=10, mss=1380, tbw=3705, tp=-1, tpl=-1, uplat=314, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-29\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-30T16:00:02.119Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-30\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 35742752,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 73981,
        Symbol(triggerId): 73979,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 30-Jul-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AKE_ucbKbH7-ll1i0Vnm4Lf',
      'x-fb-trace-id': 'A4ljsYX6u6l',
      'x-fb-rev': '1044155486',
      'x-fb-debug': '/nB2fF0HtYSyHYtA9KQ3CMFeF4S4yPJ8tSW9+o92/bxyTbtNTBz2K2hiuM/wtuB4jEOt8ytCQrRHpJM2xA3F+g==',
      date: 'Thu, 30 Jul 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQrIus_3fvB2fIXkpM70xFv7bR2Ur2gY8blMiC0IJDjTM2apFkpxocozxWWWSSiSixmncOlrPSf39jYn_Y_"; e_fb_twtaskhandle="AcQoN87PULDqzLQlE4fdBdYdWwDIDEZTEo4vxwcrXZQ_ItLgUxW-1bx8exf0OyA38fs_bapQocKIIH3PpI6uknunImaL9RgNt9-6YnwodC7nyg"; e_upip="AcQIQrNHFdyFgYbxt4m-3R2xtnpLKif9jjmaMKyGXsRRxYpMDoRuFa1wtBP2ABQVf1CbisVlTFOUngurzENmWnWX4B377ACnluWsoZOn7Mc"; e_fb_zone="AcTBZjOWRyNyhK_mZTb6J5d2UsyevDXKbkbr-fsgRxguDDQL6bvVOE8vBZlWsFgE"; e_clientaddr="AcRPdPCE1s852h9Z0CLyHTYPz7tTEEFtO0DAaVnYIFFKi23mP2M5oRXvK3DAAiNmqITIPfgYcvDRxhKDUn3mmBgjOxXWsrR_FEmnubPGN5QF3vuYwg"; e_fb_vipaddr="AcTYptc2VojEjvTqBAW909Z9IuCh3eZyWUqavftVP-tjZyFN5Wwye3F7EbgGp_weMRWSe8hFnPy0Aakgxzj7AoDXqyug64JYiHU", http_request_error; e_proxy="AcQUECApg8Mc9_hXNr8UfHFpIjA6cHuLnhYrL_QtdSbNk_v9zAOrz5CodIzlvZmG8ZSFoa5Z2-67Pgg"; e_fb_twtaskhandle="AcTOLY6t-HcZ6xm8FrMbee0NcfevRp1YvOiI8wMsf9vZSoLxE_edrKlo4OHVeytjGhPgFI48z0Z7P68mDV9znGzVQ4MLdgIMeYA"; e_upip="AcQ_7rzQPivxw_y8Lsy25ow8wonFedcbWP-BWvsRf5yWZa78tCRrNGoBScqL12ooo1hU3iWIbIjOELWhRawn5VJT39yxoTmo4e8"; e_fb_zone="AcSCLBsl5pETIsKiCLq5AvYu-gWyPgMUyRw9Kco8NldR-GSeLPDXlC6J79VmyA"; e_clientaddr="AcTo4o-mLoBLILOVqX8YZQV60iiQDXKuCzHdAQc7OC_7NZhfbUVjTp1mN8tMhwxI2_XqSaT_uzbBBBNpKt4"; e_fb_vipaddr="AcTAVlLcYoEGw2yAS91QHeDbeT3r6XKRgCIFVWFyQ4ktT6Ni6oj28H7nLO-jM3WqR99Kqav63FI"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=37, rtx=0, c=10, mss=1380, tbw=3699, tp=-1, tpl=-1, uplat=788, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-30\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-07-31T16:00:01.066Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-31\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 707423,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1762,
        Symbol(triggerId): 1760,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 31-Jul-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AZjTpMGIiG9Kry7BvuggPu3',
      'x-fb-trace-id': 'EUyzLShoPz7',
      'x-fb-rev': '1044236315',
      'x-fb-debug': 'FuReCb3N0daWv28CNi3Eh9I2qL4NAgykUiKQXMx9cf63uKSRz+MC1Z/zKM8GaNcGcb0uaT5oOKLC9bUl2DabeQ==',
      date: 'Fri, 31 Jul 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTta824OGfwK0D1_EzWy8jK-OuIu8maS_Zs1t7_s1nnolV0WLpmp_iUIcYdzxb-T48Eo4JFskl6p-2EEBE"; e_fb_twtaskhandle="AcTyqntAJTbD_FTpy-GBcYFMMvGfXZWLMja75k2H_LW2eTOGrdWH3i9hQ3lI38_3ocZLPVtcWZLyTaccX0CpQGWgCNHc4zW6WTfpXOAOdZAwBHI"; e_upip="AcQM6cd2PCHCZIT6cYBDAWB90tWrifEWnQ6v_f2IWxcebMgMRvgfhW-1xjKOReYBG0ALIL0vz6lFQHMR2La8eTExnC3z0DEvFHd6zxuczA"; e_fb_zone="AcQaWCYSLmvrUj5rMkPGyJNUApwAPVI1CHfm_2SfWWkn-aNnEr0pKtA37JPjRJJ0"; e_clientaddr="AcQvhApvACaue4Wd37YquD_98cgI5tSocGELAXEHhCeubVL3_7RvGHKV-mPUmezv9j_KrXw8QyNkIXZMsx_TMTyOoti0pMPYY6vSSbV208O8Vjo"; e_fb_vipaddr="AcRBeR9f_LS9caSZ9YQef9zuKEgKF37g2O3hQtlf_LS6cfpXLiHceTWUIjSLFwHJ-5eFmGo56I_n7O78GAvMlj26Dfff_SOcpT0", http_request_error; e_proxy="AcQaOdiWriEdh84Ef28xtumReF9rOIHc5A9KEBbcXu9VYaC_eJL5P0oOL1KJga1w7iXIDK2qf8TMpyE"; e_fb_twtaskhandle="AcTJE2hzCQu5cPLBxxIS4-mJ8S6AixC2ePRR7KZj05_kZnsbRKPe1IMT1EQfIbMwX6NfSwk3jfK4aqE80rDjqE-aWuzXm5s6nsRn"; e_upip="AcQMPV7sH4yXBz_zdqPWyssqKas7jXeFIW8PBX90vDVVXzLwNzcMI2QDHxf-3IFrrpy396KRu3oPt37ndPxTAGCu3a0LrJpAsTQ"; e_fb_zone="AcSTG_7quGGxbCe_CCLN5jfeVN7eypJRC--lw3D5h1DbvMfCAtTU1642rq8seA"; e_clientaddr="AcQ8eeIg-aoTxlP_vpEwa0WQ2xZwE8HAS6EhJf95Kb52XIvf4hiHwX4allvaoWkcO2D3fAf4tS2ChUpglJ0"; e_fb_vipaddr="AcSy7pjSNwv7Naa-A4r55IX9xH1VBfnfS3XUwzuJolkmjiaUNB5B1cWkfrikXzZOfYvhbIzBug"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=838, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-07-31\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-01T16:00:01.607Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-01\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 87108369,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 180625,
        Symbol(triggerId): 180623,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 01-Aug-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'Ato-JQNwzwLuBkc-LUvSOrG',
      'x-fb-trace-id': 'AnVtfvm+yNn',
      'x-fb-rev': '1044302058',
      'x-fb-debug': 'flpoWyx+7cbHA5uyS5d6w0rVEBErIzc+nIGSmx3W7OpbToUcqvVSkzfPDQUrgJZlHz7Z0kWV9E1FmH1As0N4vg==',
      date: 'Sat, 01 Aug 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcS4DSZ7vokT75JkP662M4q_grJ-nXS3DASI1fxu-D6acDeT3QXuVdwcsF46mLwAzOIogjWMZ6--WTXuvROX"; e_fb_twtaskhandle="AcQWvbYIZWz2jauSWcF9XpVkOmpgT3QgY-roV2UzAFlRS8QuY-5LhkGX5Jbc3XcJgRxSUL3TqIYwr7GvYgS3m21Qi-LQv4HNYtEu6UxNW77ikVA"; e_upip="AcRfm1totMSk0KEVvlXbPaIJf439er6y3JNrp8kcrmcrdCn8kQBzFHVIetrcG-9gWHKRhkCugX1w_FMDcVXedTQ6Qb0Nz3xKkqXMqfVOeA"; e_fb_zone="AcTgM1j34DARi4oIn7jkIv1IVhBRrKvksss_oZcR58b2fCDcZUZWSyfu66CN0YSv"; e_clientaddr="AcQBHYKw0PooNOQalEKbHhawN_nDY2FS6Ib7V2y284qIpLw-NlH_zcpCyTN_vzyKkdze9uK7gL-YGjvU_1F4TnrlZeOTAJdMthDxRX90MKbVlQPpnw"; e_fb_vipaddr="AcTHe7XFN1QGO7uZcCj5OBXixXuJ0XKYQuw5fEJDPYDq6nQPDsQSHSJIDJdeMC6AiJt3ioT34yMigbVoiUJnRrGx1vkbf1bVd3Y", http_request_error; e_proxy="AcQ0KCaqw45KZm9fvU9C7lwun9sA_y58Lz-aGcSE2haDUKDibJOBRawvpWW0S6OC1ieQHZzvw1_8So4"; e_fb_twtaskhandle="AcRRjJGaqcjK2gpd1XM2FzV7RGMVZRYSzE25Za9poW5iSYIfeGybdrcnNm5xhvSXrpZ4s1FSxbDL2FEM_OAg4OX9FhGZzNrL37E"; e_upip="AcSQ22UJfvtH5SqqjDCKkADpQJRkmiQbs28ZhudobbxAehOVUKNnvi-XgIerPcVpfYyWfU7ubxksWaCCKLIpCBfLXoXVAYfrENg"; e_fb_zone="AcSRBpliboAHU_gfPz58wpqBLT18DtVbV-khabnNWpFsqpsiYpkQRfWqEiP11Q"; e_clientaddr="AcQMlp_vroHCnkZOe9B1pqM5bzQ5_2bBGQYu1LZ8P1rOyaEa8qvufg7TeOBKTXB55x6oNvhrtHfbZFx6RMM"; e_fb_vipaddr="AcQuS6TSSJvmrSxN_sTKMA6QrfcP0s23_lAIA3AElOPlyt8iqLJSv2gVQ1OYi9JXRMRiP8YOfA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=790, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-01\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-02T16:00:00.982Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-02\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 173508706,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 355549,
        Symbol(triggerId): 355547,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 02-Aug-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AALGJaCI37VqLof6C0tA8CL',
      'x-fb-trace-id': 'GGd9fMC/Mya',
      'x-fb-rev': '1044321147',
      'x-fb-debug': 'HWrB5kdgy4YpW1novASto3pLeWILaiVSswdyv4407M6Jl1qspwnNdrD4s9p9ilfukB4PVbkAwSRSerM6KUJUww==',
      date: 'Sun, 02 Aug 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQxsfBzlnO6PIRol2Fm2hJEu_9CJPpZppzaEghOWLFEABbo3FS_y1pb1U2bxwzU6ZIGC-s4BSGgszizcfE"; e_fb_twtaskhandle="AcROlaC_RY1PhynCb86kL6fcwwUMEy-wNbqm-qu76iIBAS7jM4uH1utME3kS7X4gBvu-l04CnvZmP2a315iXj2HS4GNyD8Nruznqbzy8Q2yJ5DE"; e_upip="AcTd7z2faYBDokjw9RFARRbIZzBlmDfrkKqUQe3GPrvTYEu5oPFE0xUL4Ics4tEHSrdrTvfXnlSz25tKHNTKSqux6ufiCtohkUNG-m8H49w"; e_fb_zone="AcQJQ9PMu37fj-7FGLzyHS5f4eu7vZp0tLGOt7aja6kR94uXi4dWtqIVf3dteb5S"; e_clientaddr="AcQ2jWuv86oKTMrDi3Y6tWOvG6PIO2eFjSTJ6Z6ot_7moXsXlRNsYFsYsoi3lUiJ8YRHeT2JcTodFuD7LKEt5UhrgRvE5eA6xOGnTCXGUB9LlGiIIQ"; e_fb_vipaddr="AcSGdNq-5IR1m_vr9pJhdabZ5WBXog_9l9Da43uAfSWCdGyf_H6fkgz2fJifaANFKvykxQMC0NV9syJVlcOLfTqjkXdxiy7sWSc", http_request_error; e_proxy="AcSSov7Rgo5QemeZiDFtpxLfKRSxRT-emYh6uZ53PXFZJm9djkxhvzl8uYKpUeQHj4shZqiuID1TJ4g"; e_fb_twtaskhandle="AcReuB-fjgvcejDw-1-rzfV4SxJvdQa7UpDxPRSN0b6Agc9LDKRxDtB9KyuVYZjaMrMFfn2A92MFlrxrWI1O5TXQwQuR4J5dryqA"; e_upip="AcRvDegKaxV96R7ose2dcCdIIlRYK8JvhrCGZL9lgI_6YmCtY_3NWlAJU-wefD7k605NgHeLrZ9RYQ_feJYAnCbNk6w-_TAfLsw"; e_fb_zone="AcR6kaOiPwhRga8VfKu3VTTc_JFINU1deLjpdlQvgQi0Ud51drMWlP7W6yE57g"; e_clientaddr="AcRcDKYOR71aaLpysTDVI8z94HK0LZe-vKXcS8gX86DAq-GekZCfa3aXD1Rj6cRtM4b7Jgwg852wrrKbWgw"; e_fb_vipaddr="AcS1ILEyItqvaA5x9tsssYSZ7UUja-uiNXJl3yoBXFpk_7hnbTWHbsZGXgb2HF3GQRTaUoGR2g"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=43, rtx=0, c=10, mss=1380, tbw=3707, tp=-1, tpl=-1, uplat=245, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-02\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-03T16:00:01.495Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-03\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 259909984,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 533623,
        Symbol(triggerId): 533621,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 03-Aug-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A7ykfZa-D1WHyAflAJijfQJ',
      'x-fb-trace-id': 'FDI6p21YN5I',
      'x-fb-rev': '1044344916',
      'x-fb-debug': '87ettd1cDorV98CYLs28hE+nfuDPuL1An9zNGc5EyNTOT5wa69ZRhPX70mhDx09cmDR/fEqXiNg/AL/oxnEHMA==',
      date: 'Mon, 03 Aug 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQUSBEX3R-S0r0iicbzBbnhpXf2iQYcgMUrmydfJXmkCnhiQlaSXUs3OA_b6AFGuYzEQyp1pNUEptSrMt0l"; e_fb_twtaskhandle="AcT-Gre5nEXmYYOGr1mjf_QQbkr6WOC8CozQ1hgyVcu_hI2cMRPqF36UEVEFznrZqqQ1GOu89IWFUCTXOLmQBWBuPna8e67-kCXCT3fM4vfZDeo"; e_upip="AcSJZkMstMUCz59fQ4bNsh5THBuFj5sYLfiLTn2FbaqAr_gv9f9O-zSkXgJKxQ5BHwS4qF7aRE6bAiyJLzsW32bjpS1N2hqEfC3c4jzfJ6o"; e_fb_zone="AcSrbVRVaE_JC_ZMIbNsFnCg8FVmn1kRtbK2FlsIyhltEAs0l85I-LBBTyB7yTZg"; e_clientaddr="AcTMPOrkJFYorG6DglBOnyNyPCTbAThUo76IOZ_-ByikCHPjqJH82Rt-UmgHTnerIzl_5byKr3qupd6MlROwIM06CTR06hfisCG6lO9CIJ9UHhHGvA"; e_fb_vipaddr="AcSIe-WJ7uNnr6eOeQeYvmpdQWArHYc8GwMniowFTSNP586MjJ8Gx9rJFbEe4dATPpzGJJb-4xYw7YHrahKfUHejf8c0HKwTGsU", http_request_error; e_proxy="AcTMF4Lh9WJLLUBzxGBnrfSvfYdLaIlBAVf0n3EOj4AbUCK_daxxC9z_mCMd4S5DsmF5GsumD-9UhEE"; e_fb_twtaskhandle="AcSYDSXsL9evYLqRkwoZZBW-2jsjhKjEHXI3iZoi0giVcVxpqx0tgFvXxYh6mFackm-_Y4fe96Urov2jS1un9o1XU5ZQcUoZ6L0"; e_upip="AcQZSzPZJPRM0YFmAp4jQc8TQjjNJmIeU0RgupXuvie-RPO4KCSwkSWdYEo0YkCVchqftkXFdAByJTIS0S8s8W7fz641qkdlAUE"; e_fb_zone="AcSYXKCeobL-VOvTFnQs55P46s-UhEBi7bhZdaFXuRwxfoEKYW2YSK2U-Wuy6g"; e_clientaddr="AcQf_qd-2W1Zy6sugrIYcjY6J74oyprKbN6D3eNfEhuaT8kIZQLTMLez4O0Cl-ajfMDp8j4WV0G3ZLFYTNI"; e_fb_vipaddr="AcQZgYDTKaAQ0s8HnZBKPiZdFGuTlfmb8gB0kP0J8TtP_J-Ppa1KRwANyIOc8LlT_m9kWArwdA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=731, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-03\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-04T16:00:01.738Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-04\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 346311649,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 707645,
        Symbol(triggerId): 707643,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 04-Aug-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AEanTzCFgx4fdAyqY9hYJMx',
      'x-fb-trace-id': 'DJYN3M1Zm2k',
      'x-fb-rev': '1044443731',
      'x-fb-debug': '9/4SbbKoIMRgKweSB/YizizRpT6xvMcxfb7VYuuXJoGsTTNQ4JThEHUPIHCSjqjprFN/mG4KvAvpZ7ehfsxYgA==',
      date: 'Tue, 04 Aug 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQad5dcPMU1ENU3o8R3TTY-bnxgzU-PzjY_q-rT6ASIQxEpq7KePmoIwF2wddrJMpkn8yjz5wMZ70lk3FYN"; e_fb_twtaskhandle="AcSgf8mb6vY__hAXTQphgP31UdLdfNjJX8bMCyfDgZWZLyVFr5N6zKmo6nIfTJ3KvAQNOoHsPg03tD3YL5PqPjUaWL5yjrsYTEeXEdjk_eMmSms"; e_upip="AcSuTlLFypbDVx5W58V_jGiHrb56vjforIJdgQDdsbukJAyngs4RH-BhAqO2c95RievbGwKT5jvn7NSK0lkXzNVvHdpzOrVyJ1SmQyUyxHA"; e_fb_zone="AcTcBWnxvb4SbgyH2o-5Q_jRzzQFCkTlGkwbaBMfGYYO7JQS3_a0DmHVIholXX62"; e_clientaddr="AcRxVQq17PA8Qc3azBOg5qDPb9ts1Ds8Q-Yia1PQzLDB9UurygHBYjRm027nk5NWyVpsO58p5q40UOTwDWCpFrPC90zBU5sfzRVjR6YXH2SDoeDoiQ"; e_fb_vipaddr="AcQP3sEj-Kmlhau9YH2AC11U1m60Rqx5pBFkqNVbuFzvrTcAGl6ddSI0yqdXgOR8mbowfga-UMJfh0QmeAx6ACJTdazlfyRuI84", http_request_error; e_proxy="AcQLKVhOwY03hM60PzZEfYzZinzdgK0fAkBdugvcJyQEe8WsEl_2MmW6QRAVSbxlhiF3rUaqSLEqkVY"; e_fb_twtaskhandle="AcS0Tij04bjV4_5Q1n0KcEPGC5qFdYPTyjpiJ8nZ0S-1gvLaEMi-KytNR5GrL8GVBuSmVnMgYZO2nNzs9BfjdHmN-RvTROGwZFZd"; e_upip="AcRfG5egf6jBNHGQN0k7uGnjdr_sK63hT0UWb9gL2geDgFykgzmdSfnbvSh2fAD9Crdr5pThQEvBIqepEcf2l-W562eDydKTJEI"; e_fb_zone="AcThaaBMRjX_GP2_JtEMxEqBiNn6VFUZFfhfWLux5AjsiXUPxyt7knkMg1PBtQ"; e_clientaddr="AcThHhFIEpjT_SLNIbog1mSUoa2YmAkyfsUoggoOm2w7X9PH77xe-J8CqFtfM2SwuPTIJMYvCaDfNazi00Y"; e_fb_vipaddr="AcSXDxXLjjnsiIh_iWAF09cLBZ8CycnBMAQMIyK5r7oSZxjyJORMeFVvGF_DEox2NAOqftASmQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=847, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-04\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-05T16:00:01.487Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-05\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 432712890,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 891334,
        Symbol(triggerId): 891332,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 05-Aug-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AWzBRI1dN0GahGn-gMjsiky',
      'x-fb-trace-id': 'Hk10RNaCsBP',
      'x-fb-rev': '1044539926',
      'x-fb-debug': 'CS5JzwobYCAECbudkD+hg1YHBpmCw5OrGOzC+65dqDnKXgVQL99KnKBWsjNpPaZX75Aq/WsPujyFK9qehD6yZg==',
      date: 'Wed, 05 Aug 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRpF4IPMPgqog40Owvfncft9wsZE8IhvdN20FXZ624obYVV7wfh9Csh-jkQ22NYA9o6flXMI5fiAmpwONmv"; e_fb_twtaskhandle="AcSTZNCyemNXhwbC8-o-YQyYtZ6Dxduyq2AucF0h9TdUCRFU5SgiHrq_ejK_yvheRkqBjIf-4EubTFAN7_S1PcFR-hB35k24mbM-Xgtzt_r7dqY"; e_upip="AcQsHkfzB1cx0QpuZXdWqi5wINs3oLvUt4HJNN_gz_U1hYx_tsfpRK3I3KBvJG8BtbuHZ1I0QAxIauCENqX2aWzNwsrdOVphlSoyebr7qtY"; e_fb_zone="AcTjyPt1LxPw2iI0dBw3Y7VA9MVBGJ0aO6m3ril6LNc7TRJaK5hUF52s7FBB_NWB"; e_clientaddr="AcQWLEsAraCwL1Mq6ie1ZkdOVmHEoczZKmnK6yPzByVrJBrG4CPs7lz3v_Pt5EyG6YDxf82ucRfWiVk2B8OkQlw6a5XHmHZUHTY-iRC8rk64A85-xA"; e_fb_vipaddr="AcTli5beMPYKcTPCqvMjP7qfPyUnYCznKovVX5H1zQZwnJP6snHEomXe7Ev7jNgcchul2ct6iFaJTgFiMo3oU8ciQceE1ZHYQAM", http_request_error; e_proxy="AcTFyxtB0o6k8r502jx4C91ID4j_ySxhT1OPyjBvhQvIVMrzQzaw09irEm6cwP2ReKlFrDD2mnlR_94"; e_fb_twtaskhandle="AcSqgAjt5guXT7GRp74gES5YbTeKxitC5QAIhz5Wchik6fO5EPJwQ_lVZXtmxymlTPVFFC_U6n5R6Cn7JKUbjirjbM5Bw2upvJXh"; e_upip="AcTSqoS--C_4J_tVg38H9tYe5pNba5ik65BS1yy6TaDJhvvGt7ghm3XOuiHkFcg5yO6TdUQ_peRXDO192xMzwCjrkjGIopwu99M"; e_fb_zone="AcT4WXB3B1yPkjX3dlKVznSzUnkQWwxptrP9XvsGBvYS7tg21cDCGWRb6bntmQ"; e_clientaddr="AcRzPeqK3SZC4mQlW5Mk-OmaiAe8u4Co3v_CAaAd5sqZdRhqIWl9V27QyK6mx_lSWCIwQTbDeccjYCFFvWo"; e_fb_vipaddr="AcTIMyCMrXryBcArtbcVcO-j4v5fhBWkcvBV3krE0ALMI9pNt96oV8_OZi5J3Ik71oGcIVfG_g"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=793, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-05\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-06T16:00:01.712Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-06\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 519114414,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1068713,
        Symbol(triggerId): 1068711,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 06-Aug-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A_pOlS1Wwcqku0eEvKf-tyT',
      'x-fb-trace-id': 'FmeA/QnZuDU',
      'x-fb-rev': '1044624456',
      'x-fb-debug': 'Gn1Pga7Vm+u4F1TI1+XdIBciNzAv67G6iWPTTtpB+1y6ZGAkmd7/yiKor5FNglkROPVFPFoPU8AhqLDuOaXCiw==',
      date: 'Thu, 06 Aug 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRMhbcjHvN9jEUzXVxl08cp40yc0qPeU0jr36QvjFp28_PG4TiFmCqoUBvCKNUo_AkumGavWFw3mH9a4a5A"; e_fb_twtaskhandle="AcRJoz30CKumrt5DT0wT0KpWFWTI1Z2OauHukWLuKZ40timWHTbygrpnK2pvXH736auXoeuehXLF5iWNEVh23a2rl7fVnFSulEaCs3blwLb2xg"; e_upip="AcQALDL1m0NskUEvlNrH2ubd2QeYWsW98_5_ZY2lKcIL-v0P1_NyGWAee2SUz3voaADlY172Ux91JshqOWntCwQ-FI0BnPJU8rZoaQjfrg"; e_fb_zone="AcS0lnOJlmAOxJeYmD6azRoDwRn7c4PbrbSax5zkKhILH0wRtv2TGWaUxY8d8Nac"; e_clientaddr="AcS05mbbjwZDXiEfEITieW3ZTfSGdAwssb8vCRRID0_1VPPyoYSTLORjcDOp6GsZfahCzq1XEG0nwJWu5kN_QayiheVkHveXxGzFPbrCZjk4TCNt"; e_fb_vipaddr="AcRpcBs38jqM3d98Sn9BQcOymqKCrspKJku2gAGTelI77LEwRnrRqDHjuXEcQy_ZQv0gjuyWuhCpeBcwDcG-uyK4rq5BMmTfM4M", http_request_error; e_proxy="AcRfJoIA_g8Dt4AbcMjMXtc5Hu-S52oDswdeI_dpkx61-cKg6hoXovTHPe0twF-DcAdlPjrWGaFqmF8"; e_fb_twtaskhandle="AcQUSlR3FEdlMiOe3c5lvCWjhKiNbXDAWa1wVkUlNr6Wl-jHAogP5Nzpxsbii3dZDBnHPuDOypcXMa-dLev69HjFif7oOfBthM0"; e_upip="AcS5P2IEJxlzHPwLkPcN8e-v-Gi_KnpXBK4QHZhPtGTtqRpiiM3gW0lPcCWoKLGKnC-jhp7VCXDaM-cSo9JnlscMr1g7hVcpbrw"; e_fb_zone="AcT60hm1jqoMYv3F5jer4RR2s1sDcXITablkzY7v_8hHiQ1uqreGgI4240mdjA"; e_clientaddr="AcSITkUc6TCL7TYx-Pbxk4JuJj7clBVjfPPl34DjYkFBW-Ohu59jsVMykp2RLLk5XmJregE8EZQluQ49OJM"; e_fb_vipaddr="AcRSbUdMJjImyHGrYs2Zjf9IEvCPd33MxBim27-jg5YYZTb7MOgPm02yMTeZ9L4VMZFZusmY0w"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=762, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-06\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: read ECONNRESET
    at TCP.onStreamRead (node:internal/stream_base_commons:216:20) {
  errno: -104,
  code: 'ESOCKET',
  syscall: 'read',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-07T16:00:01.453Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-07\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 605516102,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1243852,
        Symbol(triggerId): 1243850,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 07-Aug-26 09:00:02 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'Aey7wKfiFfNrgGqFPxmnIFO',
      'x-fb-trace-id': 'DY7tMhPKOQ4',
      'x-fb-rev': '1044725657',
      'x-fb-debug': 'NjKzkNXN1WWyu9/2UijAH5s1d8qnOHPs3t+spiGa71Shl9gJqsltWUvsAqFvrwvwLtuhjP/WYG+oSCyqnNW+/g==',
      date: 'Fri, 07 Aug 2026 16:00:02 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRSm3vRuqzUcy2LI6TxTL6vK42ms7escBxz8c-v_ReViI-NdMVDxDyJzXihHaV5_8_E1kJKgidIBU3c3i0"; e_fb_twtaskhandle="AcRbs0lVVuLrkwG4uUVUasljg9QEAOhmFvZgTcI9v6Uw182D8pAk9lwRR7m50XLx5ZX2aPbMOAh-hAHEbenjA6KeMcLYVk2ajdleWyWac81gpts"; e_upip="AcRRHhr76RcKaVGwdzsuJjs9ndh0hIGTkju2gaGH3Dk5cE55RBaaBHQW1MFbGm5PtlvlvIAW1bqn6jF5NgDA8SBMjFca8zg_IK3vL758tmg"; e_fb_zone="AcSx-x_k9PdXWR3Ow1TlGoeI_qavW_FgBltPyTscoP2JP0UXyrLEpZ77vNBynlRp"; e_clientaddr="AcQxgQrC-epwplqa83au2LuLp3cmlaj8Xlz9sdkiZlUZh-l94Zo7u_oT92bzl1le-HvcWb2C5vSn6DyESdq_VeyTu5eCKvPa9yQeZOXOQxNcwn5N0w"; e_fb_vipaddr="AcRBu2aTAH1M9iJaNUuQLmRv2V2LBh0kDYRV2Xzl4mwqPfOcLDcOOsrRYNRE1gb44nvCAeDCrm1lm-5_n3xoQhSlN3u1LHonlxI", http_request_error; e_proxy="AcRSTVDzjxysDRtCmfggGUUHIAECTp7TrqPj5EW0FO60u2RaJ0cYRbr_jsXt_8FPQZqQWmbtHmOwMEA"; e_fb_twtaskhandle="AcShZM4RVK5uSuqFYQ7eTedQEOsb-vZUmY7gPls19OQAV_Bo5q5CMex4hJqSOB_R1IZ73MyvMv8cDecCWvBnQlciFJWXsiPuQzF4Ec0"; e_upip="AcQmAYGKAlkNX_OzTdtRRl41PiPdMv21v1amNWSEmhMoJfxCEkYVhcQJCS9VEK8NGdlLyYUYydABLG5E-K4-x9tZCV6ZRBKUY6U"; e_fb_zone="AcSV8qn0EptLy6fbVhkm29uJlMoLDqf_1nAj2q05COxJC_-KR_vicT_J1IM5KA"; e_clientaddr="AcSSTPuyoUheOi5CzXo4xBieM12R3zPfXqanJJ5SbHks73TWR_GQRc7g3UU9c2tH0YzMLr7BOmkV2ztmRLA"; e_fb_vipaddr="AcTCROSKJtKC78GMBX9h7fX-VufsQxVoge3du_UdrMSbDLWLkcdKzvktbwfe-coiZncebE-Phw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=778, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-07\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: read ECONNRESET
    at TCP.onStreamRead (node:internal/stream_base_commons:216:20) {
  errno: -104,
  code: 'ESOCKET',
  syscall: 'read',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-08T16:00:05.636Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-08\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 691920111,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1421527,
        Symbol(triggerId): 1421525,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 08-Aug-26 09:00:04 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A1Q-mlOAEtP457SefoKh_ei',
      'x-fb-trace-id': 'CBhYpNf9U9c',
      'x-fb-rev': '1044794682',
      'x-fb-debug': 'Md1HjtGGNWADh6b5zhTCK/fSxnB+HGbwDrLyx1ieH3Z2829cWLL7o5TOZd4oEqxz4AlZ+zIwMNZ4U3nlGlqJlQ==',
      date: 'Sat, 08 Aug 2026 16:00:04 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTnWEFIEeOo353S5d-F8-wyrA4_rqfG7HTbLd23P1L82mh0KVQHCD2EDCbm2OKx5azTUXn-Nn6LFzfuIOM"; e_fb_twtaskhandle="AcTQAqE5MXMpUnvKn-k4ao7SEeU6mF9Js36SpE_IX5B5xy-qnZ1maPqasFB_FIuWB2JPU-Q6PFFlAkbQcXCMyDBpPjyYjIpbNqyUt07r2_TnKQ"; e_upip="AcSRhe_9DUUl3CcdgHPfiCz8VCLul-kIgzINbEN81nDZ1KfL9h1JDk9Ee8dYbQlX1oDlVCp9L0c4gby98ACnzluP1fqo4GMjgQlvRATsrOw"; e_fb_zone="AcQtg8jViLuvpWiXJ0NohsTKICJsiYE_vrjmfwW_XGZvKMSkLCi4QT7f5GaUjjDs"; e_clientaddr="AcQmq8q6QgJrIhYgEByi9KNz0vtr-bT85ClrZQy_iihGJji4TWBp9JZDPcsmMSkWPJhVE_q_y0cT_UNQlPKgmzqXXLC9Rzm-Q-jMcMK3FEI8ghVd_Q"; e_fb_vipaddr="AcTgX0OsRniOYVOOVfM_x_9xUzB68wy7VqLv8PKacA4xGpEqgyiKc4NiKUoqxncKZq1h6anVpXnLhz4mewEjn2vI26tjSgpPesM", http_request_error; e_proxy="AcQrGTuo_aw0T4SiLQPiesqMrDRrfaPRkE67ix06oVgEEzrIdDFkMIjrKd2zu2183_-LxvjUT6cHuKY"; e_fb_twtaskhandle="AcTv6yC8Xstb2KZ3TOBYCCEQ5KaL3bRQMqZpE1z0kzFXEVEVPXO719fca37sjkOliSiuXMBWXxdni0QI9uG3IxCzHdxGIcRf-JP3"; e_upip="AcQE5vMiZfiEbNx_pyzeWth9OAb3jUmUuwpqZV-VP5OnwR8oueOpOv0fPVsK7D0qJ4AN4ZJ6V1xA3mHEeqMh7wYOeVSEE11u1eg"; e_fb_zone="AcQk3GOibuGjWFenP-xls_Nth5T0PGssaz3rDSxiDNXvDC1S0yYS2yzeMlOzcg"; e_clientaddr="AcSzUgDA2Ra5VzN9YzV9qGb1IdmJyUio_mjGgHhHayhN9NLSOOdCjAWSpQOWNxwKtc64EQkQN-CDWXSGeLA"; e_fb_vipaddr="AcRBTcIaSinKRXLzMFPWi-rT7ArLDDvNiFx83wFDwo7C5UbY5nOJ44Tl8uZUbJ4RxzvrWu1tJQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=6, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=855, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-08\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: read ECONNRESET
    at TCP.onStreamRead (node:internal/stream_base_commons:216:20) {
  errno: -104,
  code: 'ESOCKET',
  syscall: 'read',
  command: 'CONN'
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-10T16:00:01.410Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-10\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 85558379,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 174744,
        Symbol(triggerId): 174742,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 10-Aug-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A8T4SZ5rQjkfusjLq6R0nMJ',
      'x-fb-trace-id': 'HlaC3tTdKTK',
      'x-fb-rev': '1044839451',
      'x-fb-debug': 'sPBKnCLiLyALvTYNxIeJPZVPqDyBNSi09F6NDO+nNRwVp5+kznOJZBmoExnLyup9e1216EACHIoHM0iAOr8RYA==',
      date: 'Mon, 10 Aug 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTnM_cxF8_iYKlfAtmqDZS5JeoqOxRcn7-AH0i4tfnaXB0uRV7Ua2g55NIh1u0Kz_RDEZ5UlPLH09t89SLb"; e_fb_twtaskhandle="AcSk6F7jrq4zAEJaZ7zj1EKIZHEFeuKIoLAhxoYfM_JS8WZvMiWjp5M1MQupvUawl8RewOkcw3Kg4X6OZCb8hIApTJ5bi3ZURO1dELpJwuoTU6Q"; e_upip="AcQw6N6YOjVX9213blbsBeuqYViKRFwXeQuZeCPFYXRv-iREFNHycoWmEtnJJLaMygv_3dQriR7cmJcUuf21YQvtlclsEPUBZss8RshX_ds"; e_fb_zone="AcQ15tm2BFyrB0Fye5XrdcZQkHly_NlMXRa3cnwiMLkvBu_xP2Kp0HQFAzfeYCPR"; e_clientaddr="AcThZIRRTEM6f-v1UOlQdJpyMqdjl7MPGgz79oEVtiiGJQS4aeL_CJhTcd81YQyw39CbFJ2wkset8wZXY7sLUJOccZsqf8p-HrSUtl_QUn1FRxrA-Q"; e_fb_vipaddr="AcSt3mgNPBaBQS_03K3j2Nfa9ZsIGHSclT1IgD_GwXElC1_aVskw2uG_5kaOiy79sykvRVpdX11--V-xl4OJ9xZBkV1GczpKxSs", http_request_error; e_proxy="AcR9TVf8ksM54xoxm-o4jARb7B7fvv1J1KStJBSTocqyPcNr02fm7-zAmpRh3jX1gdSYyRC6gYofXvk"; e_fb_twtaskhandle="AcTMw_VrzNrO5s5MfW9fN4X5BZw5DUc4PDTjkr2-MbXjH5Az2TrfXscWJaHAKPyvBvMQQcqSaA5S05YP289RZMp8jbkW_r4sEnPA"; e_upip="AcS_JgkBYE7t0Ae9Rl0_Iqv4Bm8K28OVsyDD3Xa6p0_8IPxGq0oP0X5NDbZlp58rKzUOPSIgoBOsQiWqUfwxiXJj4YBxf4NpWnM"; e_fb_zone="AcT0xuLKeYBLMcT-U09b5u9p2gWlyiBYr7kxIdMbMG95M9fNMIWbcL8fnrxNOw"; e_clientaddr="AcSc7VR52uBSHcrpKrF5UHMvOSFi2_IE6cgHc5Qlu5L7Waswf8uqmmhYjmc2pgh277ifHACHkewrHWQdnBY"; e_fb_vipaddr="AcS7esWnMqouoQSjff5b-1Y7ER3JE83W1VQ3u_8gZvA075VBZYuJYH0iYlRSEZkC1nNxdd2fyQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=775, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-10\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-11T16:00:01.934Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-11\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 171960183,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 348432,
        Symbol(triggerId): 348430,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 11-Aug-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AZd5rU_gqnA_V0ffkFxmvbI',
      'x-fb-trace-id': 'HTVLmwa5rl1',
      'x-fb-rev': '1044929606',
      'x-fb-debug': 'Rh+XJRxilTrOWeOpfsooHdnCXFSClzFiRy/gB95tTHFd1ykLEWqk1FTmFqhAA10t+nGTaA/B8bM7a5XCPuTwmA==',
      date: 'Tue, 11 Aug 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRdmiLFNeMJv8eEY5FGhhuOmBIjqzWHKTHpTywnTU7oPEG_t9TD3hJ46uESMZuUnk7CYOyOJpXIoMky_9EL"; e_fb_twtaskhandle="AcS1A8IyKjG3wK6ENTtDHToGy2GHwQHK_O-kNdHwE1WfKBDkbhsA38v-YB9IW7cH7lmnP7YklH-W5bP1velvmPI3AtBCO65-pa6Q8Ptt2ZUyRTE"; e_upip="AcScRdoNu6v99YqDfIjYnMjWYvT6wKMu2nHUt8dvLyrbgWNQgrpMERy0KHj9CaphDmnMu1rBeTsBkwuQlnuKgb8Z4YhI7Kr9ypL992lXFU0"; e_fb_zone="AcRN5cwnRipdZeCDISkmIi08mk6V7EQR2LTOmRsAc2wMaLuqyPBXF-xX-dTcNTaz"; e_clientaddr="AcQyEUyMMc1i2BPrPwkIkla2wipOZ6bK9y-RRiKcLKFMO23B96aAVkwnSHio5EHDpBQYGf3OknJqgp3jNRDVCU4H3M1wmKTsH9wjI8WmT9XLm3dt"; e_fb_vipaddr="AcQWvJO2xpG-VWA1DTtxgr4iVi184fl11bLTIR_dEKw91-b57rNBdUjzz_Yd0_WcAf3_U5Uy5AXpfJq7_7pOb1fiaZdab2CXHLI", http_request_error; e_proxy="AcTS8x172p0SN5diNNvUxxmZ0w2MqLybiPlhsfVazHfiLF9wOffrBuAjVxGzV4zL3h7rwW_-PirfCsI"; e_fb_twtaskhandle="AcTRabYJ5DdrvGfXRAE6dsmEUS7yoAREXhARnxRhzJAgKTd6E3VegRtB4kV_XBYXFUOHhku-PAP14v_1XNGf8Xy-4VSwRT-8sX0v"; e_upip="AcQHtJ0y3PRZ8Y0yfTzCDzPO0RzMH0zkPYMcemwMBUbuJ1IY92Rl6osTE61nysKJFRdUzVQhP3Q3vtMHHRp9jqAOZ3Dqkv3HPuI"; e_fb_zone="AcT5zssq-KYNWwzSTVuW6orghWgBgUm4JMJuOVO72PJiXL-DWRPedbeF6Oe-9w"; e_clientaddr="AcTb0OjhpGncBmX4JLFHFEdK-tJljYcz1rr0VmKnaax_G0yDuTDiJ0Vlhzl3U-Z7J0ir0slsh0juTCH7QMU"; e_fb_vipaddr="AcRyYzo8LRvVlAypRutwRz5PyXWyPyujHWVW28-aral-JDxlMlBnsmoOmS3NT8TrcU7Q-dTXcw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=829, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-11\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-12T16:00:01.000Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-12\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 258360252,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 521569,
        Symbol(triggerId): 521567,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 12-Aug-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AI-7kv3fB1be3EYGk1X9GY3',
      'x-fb-trace-id': 'FXZ58N5diD2',
      'x-fb-rev': '1045032359',
      'x-fb-debug': '5h1WrFL7YZ1CWByeSBHq3kJNENkBCn06I81IYn6RrkOoKIo+aJo0kYJKi91iMAWXiyMP292JHW158CJ1sTmy4A==',
      date: 'Wed, 12 Aug 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRdOuX7P0psVKY5R-MJXNmCoY74ukPDwlMh5TaZejDbzo6mD7AY8Zv17YzY6XaSsS0TXfZ6yd7RF3oeucEy"; e_fb_twtaskhandle="AcS7k6uqivQOFUzypTcjB4y2psq3OwU4IOoB0xQQ6WmeWMRe5ztJhST2iwU4m13B7Y51oQxP3vy0Lbio8qliXTNLzp6uy-NoeLpGzbdlcqn3SQM"; e_upip="AcTzm3IeKXxswzRRli54RsnGs28T0OqdX1cIW3Z_kxD3LeIRZp0PpqU6W4zO8KhjZjWJwX7z7vZVkh7vFKqfXDpNUiz0zp4QT3Kip-iXYcI"; e_fb_zone="AcRvIySuzPJAZPOAVNE3NOQlAVuEpKRTje4-wsARMKfjp0oCvfzFXSMJ4cv48Sm7"; e_clientaddr="AcRiaZo6BAViyaaYyhUrQOIRI9Cu2mO5ohvmyXb1vvDrw08VEX1S1eqvewgpSSToAME7Vo7CLx3Hpnq2IA16gYMbtym9j8YplxQtxAcWh13RjDAWyQ"; e_fb_vipaddr="AcRUlt6iZUmc8IgrHxceuvcXcm0CPL721vcuPnbRx5yn5xNjDczWbhJkdkQv-lq8SLAZoDPJkZAQjzfTHElyiw9COgxb1bqMQvQ", http_request_error; e_proxy="AcTG0-yEcMp4a05HD0yhdaoEsqj7IONF2jNl2FQkeR8lhmcs1Ev5e_L583OwvSrxIxwG9qkhUa1Cpvk"; e_fb_twtaskhandle="AcS7RqCUNxKTR48H0pc7drgxZ3f6dzGHwSU5aGh7tCrgWpBHz4IfR_yq3X0zxkVC7K2e5ZzkK9jGXygYsqE817qGcohz7-7OEwsu"; e_upip="AcSiGXujI1jJoQUY0mPEnk-uuB55haHX14cuNm9bmqXXhT746mXcNAKABqgKKl02KyfDtPOyyHYK9CS0DmjYaSPwDT5VPEfIb78"; e_fb_zone="AcRcj_Z2Fk8HET_NCc9K5d20jhwacjW6OBQmN2vCViHXUIAeL_W-LUg_vC6ZiA"; e_clientaddr="AcTHsqJrv_7R2naFQfY0_d3RYEW53rerDggSItnkkQ2iVSkjvXQ35kW6TTKwj0kj84SsM2TDrhJ3gMK4cuo"; e_fb_vipaddr="AcTcpdBFIACDi5lncDjMBxXYGBFTCnKyqtef5YXWJyTj-UrGPIsoxWUsgDUyPcx_6Sii5ln0WA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=809, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-12\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-13T16:00:01.069Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-13\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 37703214,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 76160,
        Symbol(triggerId): 76158,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 13-Aug-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ABo6hv_2cJN-SddQxfyBOaM',
      'x-fb-trace-id': 'G4B2jnwKWdL',
      'x-fb-rev': '1045118668',
      'x-fb-debug': 'ktW19VwTvLmaz+VMF0Hds0HWMZ5FFq3GVfDxPWyEijYnOjV1CxA3FQcOd9VfjdxgrEp1A5HRxNBAnaqwIIAzCA==',
      date: 'Thu, 13 Aug 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRE_C9wfm3FGktempIi1ZEvFQe8ggEOYn2kJQWyt7rx7xzka_Q8Db_19e3lFiSqmuSbvApRIWBZyj8VOwy4"; e_fb_twtaskhandle="AcSbk9zmwO-ANAV0DIgPH_qguFFWmopnC6uqQZxxlqR8AlHl88HSwlVR6zza4POeXOP5eKv3r6a3MsvsfAdtPYS8JP5faBquCsOossd6t2D3Fcc"; e_upip="AcS2kzAVRxR4JRcnmB6orppmcVSYTYF7IIVhvoUI6ML3wxRZUe0RloK2imYtugHOIjZIzPh-hnaWxJ5hknZicEdWztVZ2njtStkqAWhPO7Y"; e_fb_zone="AcTkwDEMB0f_2Hu0jb64RzlPTImjvpnxAfJxwRSFIB__0mcfE_fUMEbbhvtRT4fA"; e_clientaddr="AcRZ0xWt160LVTTL_x85iaWYLGb60u0Ylz0-WWouPuLc-UtATDGa0nnHmtrWw6TtC2d7_qFg1LmJOn-WBr-xBFKtkhQ8k17xOMN0GuZJtERJ5EuImg"; e_fb_vipaddr="AcTSBQXDQiUjrLzjVS3JPSFzBn7LkG5QL3vIlvK594v6kuolhxne7gTEuZWin1lABBm-XKAhFnRDFhy8VP9tppr1GSNPKV8o-F4", http_request_error; e_proxy="AcSlLIGKIZTE_MY4D86SBJaLytZzDeiPWde_2FAgnGuzNZdV7mfY3UTM2kQh7XU79Uih1BCy9q5e1fo"; e_fb_twtaskhandle="AcRSa3-N8h9K7oSxePnQST7LakD-WYv_2-yqJevzwrKqaW3w9h0WSo1lPKLNDZHjJjaYdHE9I2Ty1D-OMF2FIzpjid5AkBUzBt8"; e_upip="AcRRJbY8mUfJyvzEb3kCwpZlNdjygFRSAgFQp-F31cXDmzFqZkCZC0XX_4EiCGDlRxmERg6cCOeORdbpegeM7EoDBW1JMRNlESE"; e_fb_zone="AcS5BSm3pB47oJoYaNB7x2WvarKI8soyK12ajih9IhV3rKFGkxHDlWkbAjI4IQ"; e_clientaddr="AcRcN_bbMsM9jmtJG8pOuiBCd_7ZPyNIHJlm1Cuw0uyHZ7YkUbjxNgaFNgqy4LckU4Cwm8j9co3GXYTMjAk"; e_fb_vipaddr="AcRqUs0VBAKIISWTMEma3gbqgbt2Hj5mKVdVbkJclq5JwXqhBOKSn_jwF3T9LsPEMif3BsdTnw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=13, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=823, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-13\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-14T16:00:01.707Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-14\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 124105779,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 253841,
        Symbol(triggerId): 253839,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 14-Aug-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ArIJlPA-XFCFDTxFtnhfY8B',
      'x-fb-trace-id': 'C78tbuw56pT',
      'x-fb-rev': '1045213319',
      'x-fb-debug': '50TLz3ugMFW683rKnoaZR6eY4qgwM6ghMOLQHvAwqEJVJrGecrnCh+EVDSCD2ORobIZtp9QXDahI2egegMzTlw==',
      date: 'Fri, 14 Aug 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcT2cdaqQYAnJOOLDJJJ0YD_NKXsbVsidvNHU5MQEq-pMj-DNN2gEyoPvY7QITaP2YkfRH1RXGgKR9Ju53nQ"; e_fb_twtaskhandle="AcTwiUxZ7Z2Or3QqPHAJ_dpv67_ziAtM8AFuXe845E6crSlDurHf7kmEU9iYpArOaW052RpTPRqFCCb5LqoAiUoAXoZsMvX-JPth6BV6COiXM3c"; e_upip="AcQRywfQxq-Z8iH20FqBJYnyhMecLPUSOaOc7yjHXeV42-8_pRAfhBWWokwJDMLEcWvVjLcAZe2kYBIAG2H1-F0sbq_6LtTzrJ9tAzd3XVc"; e_fb_zone="AcQxsPk-tXtjWcoQINJ-6EtAUTwEYEltgThN8-KKAAZ8mYNN1QoZ2pbyhBhhnYbo"; e_clientaddr="AcQMaHd7fBCHGAjvOtHeJvaQQhxAA9xLo2iBz4tTUGA4oQs15UHPASYJ--EO6LgmQte3JWRH04D3BTN169mqKunSwwHWG7g2xu3MWDk502jnMm2ZoQ"; e_fb_vipaddr="AcRyF1ZmWpggkK5qM6jaiAuXYINKyZCjTWXmyccYSemYV6Qme1VRgCRD9bdcr7uns5Xd67So7j5L5j15l3Nh3hB6ihp_GsVdnYE", http_request_error; e_proxy="AcT9G4ASQBedKgLZ3YRBEfh1Gsit9N5P3OxXRROLYrKCcPEExXXroqo6EiAGfai4lINyIRhwT08ro5I"; e_fb_twtaskhandle="AcRTGFAwhGyWwgXUcX2RNZmnqjyOB8daVQczoGQP-r1zF1PYPc28xEvWfpl2Jmiy5X_VwazzRq638swdHAoug5F-bmwSgEvYsk0U"; e_upip="AcQYI78QjyQ1uJD4w8eDTTUC_L2-NCpQyZubSkIAM4hc435hiGHfTxJRe4gPEb2edT0AhhP-41hUSc8TgmkylOH_WW1jziBJyh0"; e_fb_zone="AcSKnc_bDjpI7WtLpv0uvEHBzRKgOM-31xbn5Pw7myZo6L4RySZjK0Y3HKasMw"; e_clientaddr="AcTa_jCM15JNkqZ4xC93woXrOi17jf_V6csHEImOcZfGzAFTgFUSLjNb1gWIXtFZA2-rqKKRqVrS49Jvgso"; e_fb_vipaddr="AcRM4n3gCWMogJy_K8lhkrqUmW5tfFcBJ19msLRdsl4xZ5_AuskjiaXlDANNJSTaZZuo5SO3Kn4"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1468, tp=-1, tpl=-1, uplat=829, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-14\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-15T16:00:01.015Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-15\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 77754834,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 155713,
        Symbol(triggerId): 155711,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 15-Aug-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AdjaQG9eGW5ucUbDhNSO0qp',
      'x-fb-trace-id': 'GT9Daw+Prpg',
      'x-fb-rev': '1045283811',
      'x-fb-debug': 'IymY+y4OpYtOeKjSH48NXS4nwPhFXTicGB3vwLNetpTOhH51rGycLiSAyfL0Q4kNGigm+pYIiPuV3h8cURwzFg==',
      date: 'Sat, 15 Aug 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTUz7w5CQkAy4VhFgUFaq9IVXwJwrKlm5P4he93kP_IBzPDCc6OM19YbQG4RZhOOkqckNin0Y0KqSwtQ4aI"; e_fb_twtaskhandle="AcSI3sFfu8eUCGCvgBrrydnRiveuRL5auaxL8T6-yhY9yyqjKKeBUVQnCF6Bi_ZBY0mjOlhuhB3UuX_03G_RT4juKBwzZyHA19--LQvZ3K15S8s"; e_upip="AcS1_rYcdJhyq6He3A8Af2MO9Ch1B1PyMo_mpbw2z0f0E6i7YMULbQIok_3G2ATq41aL6kmJiG2o3rRPT7KC9FxmGL4IK5uaa1lVp7Di9uk"; e_fb_zone="AcQ4kLatj5sy4OxIepXl-OuWRG5YAGXwNsXN_KnVIkd-7ZlhN2u7pZ1vi3buqlCp"; e_clientaddr="AcRQtiJHR-KOEVC4tF8NxiImTwpnwRmvnWtKcaujHs9h6LGGykxoHTqek9dM3sPlOaC5T5e66KsdtuldPl6TW7QFdenWY21Q2XBurnx0XS3GPzdE"; e_fb_vipaddr="AcRVXC2wFrBXxkQr-If93nvdHhX8ppQQ0BtxRj3HknHP5dj1OfD6KNnMkiFhvnH56Owdr4g34j72fHUunl5J38fM0QWtwStt21U", http_request_error; e_proxy="AcR6hcUlZs391drBjqy3N_XZcZ8fl8KxkoS5sWJx7fUl8GnN5Or1xukSWmKe76nD0kcXI47yieU06Gg"; e_fb_twtaskhandle="AcQrFA4iNeFG_45LsH-8PHP6a9jZJBG_9L0vV7Kggx4XiAh-byGqPS9kasrBMR3vlW8J9_bMe1VgTCV0dOTKMCnWrEd1hgB0UX4"; e_upip="AcQ0N_KDZvSopyFPqia-B8H6dH53yF0SUKMim39_lzJb63362h2SzfYStLTLaEFJC-tAWutEg42B6q33d3qyoYdnpmBdVOQ-CFk"; e_fb_zone="AcTVcJbiRo4TjAzpoOduIK4pkpuPUpfujl-aR_vqvg1jOs6I5VS1NPatw9TX4w"; e_clientaddr="AcSEBvMpjRhqQ3AD0NQvYf_CcA_nx43DfiD9vCWAj-fSZ97E-fEicH9UxE2TDz2OWzVgpbWEJRobatCKqCE"; e_fb_vipaddr="AcSBl0-eqwrgLeTGVyxKcbt98XFdVLjSHQ3cTYjmFiuRqo4FyhIJGX1_S6tgHt-RohgBxej9fA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=803, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-15\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-15T16:00:01.193Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-15\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 210505436,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 432315,
        Symbol(triggerId): 432313,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 15-Aug-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A-Kd11JRlZDsjcRW7T_rZfE',
      'x-fb-trace-id': 'E7o8R5W6IQl',
      'x-fb-rev': '1045283811',
      'x-fb-debug': 'SuqwDrs444JtERrwdSvJvlubyrua42859JZUIt3rzFARUn17aDec4h1P2sszEjn5QKnD4BmguYvsxP0S4sha8A==',
      date: 'Sat, 15 Aug 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcREMaOAxr9D44VDZM8TMB14XH9qB0yK0rcZkOZf5lY22W1UDcAzyZrQqRBPeZ-jHvHmpTtzIcdLlcPaAPwj"; e_fb_twtaskhandle="AcQxn2wle936kPXJhmsPzgpZcmgFNHpf5NErlQ7nb15c8BdQPXXNce7a5Zd2jKRmgR_ZLBv6DSGDvINg22PdC2zsTDrErAm5WMvNFiCQPA3QWEs"; e_upip="AcTTLibiUeDpz9nL2MFH468Ejqd5AS0xA0lmjEx8tNyC5NYqCqDZHUIf1HbLELn8POvtuHyHrEGOghuJa-8WnZ7Up6UJpp91ZvD-SkMDSOw"; e_fb_zone="AcRhOegbZZiN7afKsWYQefkigv8WfmlZ5fU7VFOo6swFIj2Y-nSDLzUraEIpYxg2"; e_clientaddr="AcSz7xzoDvvOL4zFFY0Lr1C79Cmjy-o3WVm3deX653rwB-8Nzd1F-P-8QGRuy4PFPoW2-fIZGnwxdAsyVIpiGaTKqsl3k8pNRztEpcuMgDrP9bw2Ag"; e_fb_vipaddr="AcTBuYIpyw5ImI--9NBmpNeNEdNtMR-6J1WWhdC_mT7G573P82-vDekQJ2yrlSxSl7h85vvIZ6Qv2FcqG6q1BbSbSxdd3nHyO5w", http_request_error; e_proxy="AcSLQlHx7N8O3rGtZjk4262aaOuCaTxaF0Txuj1GPq8zQ0sIve9D-bfIzqa2KKBm6oYCiA0aXs2KBbM"; e_fb_twtaskhandle="AcTm9g_aIZ5DQzdZmTyUtOaYgjQhsjOCKevap9lyIQ8xV9kCfXVvklITZmFZHQ5kqoKcn6W9icTDxddOb4EBe5FTr7mbDDxB4bbj7w"; e_upip="AcRJdTpR7Xl0zDc-ZlmjVSGPCqWB8eQ2t5ZjYTHnT-yO5w4mizNvyFdYR90TyIkQNH8wooeteyNJ7As2Jx_qT2g9F62vKW50r24"; e_fb_zone="AcRWJtgjL82b6nSyxSad0LjEzQ5VSAnCtDfLgbLIiqftr6s6YJcwrzOYuWz1sQ"; e_clientaddr="AcS0F39vu7RnhV4mXPMgGLZzmKcPPgD2UObU_B6B57TP287BAuu_c2w6qavmhLX7F5e6BMhvzKWdvagmBD4"; e_fb_vipaddr="AcTZZi-1QTm4hkF9tv-BxsQus9He76uRY8vC4LRnf1yxky9EvCBZfZ-Xb2g0jxYrlubjcr-zGg"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=760, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-15\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-16T16:00:00.988Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-16\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 296907037,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 614033,
        Symbol(triggerId): 614031,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 16-Aug-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ALB_o1AGH7vYOQ86rVoDrUw',
      'x-fb-trace-id': 'B1o3B2AWTe0',
      'x-fb-rev': '1045310503',
      'x-fb-debug': 'uEZJ6uqCTCZttyoJMEDbu8AyVexRo4JQSROXkLz66NfOZRuJhXP/LCUv2r4ffcEIZacVC7axVPG7hwHy7WRbUw==',
      date: 'Sun, 16 Aug 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTo4XLzNELVPv0mVbeuetRYZTyd3XSg0sS15IWAvrSMwffBBk7_hFIEDTxENAP-ET7UWluDwNWhCPdGsKY3"; e_fb_twtaskhandle="AcTHCw64rA2vUHlhClNEQ-QUV0XWjn2GmBxiP8XYehYc1rdt-IIE5rs_cwrxY3ROJoTYnjPiVBJu9dxsNO9Y9A9ppieu9itocVvSIeHNj302jm8"; e_upip="AcTtMy3aX6c0y-8mDLf0pX_04dLVd1Yh0vQVSQ_84bOcfz6Qkl7H8I7WTr3QNkze9WvCPC1i_XHZp9glOuKxeNz7uOYpChGjt3ZcQKu20w"; e_fb_zone="AcScr-SJE7jTHj4oonbXAyJmou1A3DZq9sIZG9avPpEFZFb27ZKmdEITFQ0e-W1D"; e_clientaddr="AcTlanMq186rgWkT5N04-aobpyOfd4m6Fofiiy6TZdgvn9bQBSeJsBRCJnQ6R59i2jskmlnDDBZX9c8UjMsrbkjFcSBoVJezmVvSeQxtqZNHD7I"; e_fb_vipaddr="AcTCl7g9rGbBclI-pcEqkKhBFrOxMe7yt72CfktC4ooE4PR5blcqFDnEn6phBr6qZ9O0zrL-E0e5SO6E4M2oRlX50YoTJjpNfw4", http_request_error; e_proxy="AcSIvB7FgQi30iVNugoe_j71gaxaY7rIAr9nCQKMnsZbI5O4Q5zq_4VfUBgvJq5V7RKtTVbCfmNefHM"; e_fb_twtaskhandle="AcQweHPL_xwSbXenneeh0qsgEXCM9xavoqiBLWHQzHVvNNiQpwA49OdY7EA_z0bvfEB8F3A1UYvQl28AF5aK83y1mhHJVBkWZQ"; e_upip="AcQW7YbFpRnBjyc5_MWqZd70OhSPmhBmL4rugay31mANLnrkiIwrX7qJmBeTYoF0doNrG9yDR6r6ACOTG8uGC_2x_NjXkh2ak6c"; e_fb_zone="AcTpJp3kmfBJtMzHJH7DlXEjKifBWzzsu7R4eZSXlibD8_mm6FnJcYvuuKSBPA"; e_clientaddr="AcRFgEJXaJXGwvmaY08WNfuMFUSLYuTC9HbLsjBPACy93rQIFgZCM_rFhjL0vG5bKzBI9qjH-7MAzlRM1Lw"; e_fb_vipaddr="AcTJhsp3s2nymWmLZFTQh87KAZJp5wWEJKQWiGbRRCDCiLN7Xkvi7z9lnWu-A8XUJ9qlHTmQGQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=3735, tp=-1, tpl=-1, uplat=771, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-16\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-16T16:00:01.189Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-16\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 164156813,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 328702,
        Symbol(triggerId): 328700,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 16-Aug-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AC2AhjpkMBvQDAJQGNvD1OV',
      'x-fb-trace-id': 'Hzu5ukmfhLi',
      'x-fb-rev': '1045310503',
      'x-fb-debug': 'rSZUkd8tbKCseLXWMA4e/mNsSy/42JMhPvnXxw6/CmhfCOoKFLHXT+HG336ggbaUpHyrgX0EtI9davoL+To1bA==',
      date: 'Sun, 16 Aug 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQYEnVFG5LXT9H3i1OCphMGkoNTmTGKUWqgiof0qvhSxMfkcUx0nTzTmVvcGnaSrrEsTFkvRzitiPuVH7f8"; e_fb_twtaskhandle="AcRsFOJQzA11twnWD7PnPpDhMRRVEaG6YfKN5rNVEQ1T5ClioCx_5s5HR7viN39HcT07mo1ad_DxDNPjnJUZow3NywpYRH1hrIsIL8Ifnste"; e_upip="AcSKrrQqEHGwzXtZtvjnh5O9HMELjKzOBa1DapKBGi62qOj8foM42gkUFSArPs8st4DHgdl7vSJvyW5qxL13IBoscLnBdml3IudJX0tW5VM"; e_fb_zone="AcT9bm_nuDL2rc_4lxfnmxtWNG7gF3wXnTvyIQhhAKQLvH4ouALgvfLBbUFkqCKF"; e_clientaddr="AcSi3-BhIPWCwP4oupj8U8iJdDdOYdWI9W_wS0Ufohv_LGGcXb7oVALJq8PRAvzkOknmT7UAlbaE4OuK95CKTfWFon7WYtqEX1TuPCNLmYuKRaf5pw"; e_fb_vipaddr="AcRh8G_MopRtIHiZuoMepmwRLo-4n5I_HZTV5I2Eb2h5uXp42Pw5X0U1kwKrBZeWYWGYoeSdSzgJpskEo54fyxOua_ZG11DFlQM", http_request_error; e_proxy="AcT7ytZFh78gBxwvLstkbekQ0D0g0zuvXIYgECckFnMVShXktUYzi49rIkVU1ryDaTlMUCGC01ZRiJw"; e_fb_twtaskhandle="AcQUh_G3dLFoA6AlhDCtE0XtWkRRMyjukJMcLUqUKpMWUN8xHQk_XWt6vI5uhYq8HigHclWLRkdw558wOVqAOOhD7SpqiBdg9Vs"; e_upip="AcSeFERK5Oxfg7R_R6F0sQEezvZP-_iZUhMfedRNHvJjSGQG4UURWGEtEc9AcYyPJ3EETbvorq3Bxl4kC_hv3oq5M64jjdiPddw"; e_fb_zone="AcQSUrFdR4AeKfeqfCyI1p3mr5XQOyihtRsMTbbV4dSH8gjnMUUrY7OuLPnfrw"; e_clientaddr="AcTPiZqkArpiLYP5mTLsXUXcnFmknbL2WT-WiKA5l3nLvDPpcxV2us46Z7mu6CfC6jJD770dpUhMuMBh0_M"; e_fb_vipaddr="AcTfd80Pls4Iiwl1-TBbwm8mNeXuUlEmw2RdUJz8MnYMXSxZLi7fDIAtvB4LuIMtJD72tA4jOA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=785, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-16\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-17T16:00:06.067Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-17\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 35628997,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 71099,
        Symbol(triggerId): 71097,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 17-Aug-26 09:00:05 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ADsVHbbf5SuAYP7NISjJjEt',
      'x-fb-trace-id': 'FHLnY8DB23F',
      'x-fb-rev': '1045340097',
      'x-fb-debug': 'hPlP8o2Lni0YWUy8CDhB8N+7thVKwgzzh/gRDjdR7bFy22N1p2ix7I8Z3HPDPOcDLob6FSXZg1I69HQ9XH8LpQ==',
      date: 'Mon, 17 Aug 2026 16:00:05 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcT5yL2wmD1-u9SiXEtK5mvbP3Gwi09pRFc--zgE7TUjVUQDi2ew_9Va_Q45XTN6uDyozbbNq8iHwzIm75o9"; e_fb_twtaskhandle="AcSBcR-gOu29_9b2wqA7pi5G6Uvp_Huybfy71F4RM1HRCo_8gzt9EiodQRoloKXt3MT5jtoHy9zVfKWcFtov8fLi_Lo6RJsylfG4Isp91y-gc50"; e_upip="AcQJ34MKVxBQTuz0MKPHhHyjzZuKiXraLDLsg78yWBhjTtBPWKJPY48ZNnDYmfboq9h_nwMV5_bSph0Doy3v9HhKvVcTSvl3Go12LY-3qA"; e_fb_zone="AcSYnG7r7L-IWyfzpbtV0g9de8mHxQ8bodtx2ad7c145Wis10soVFR_DjLo9evfZ"; e_clientaddr="AcQq9xfPaIzZr7bUjQ4E8b07DAwBShp57UKnDnGnhM0PawFOQvq1SzX7H8P7QsZsi2MDN8Ajk7iZuodtUPOpT2tXAHRwBZnqHUkejfI_PzBsNKR8Kg"; e_fb_vipaddr="AcR_Ej8yUtCUbtp2Aw_A7owi4uXH3XTCoUEAQ8BvnVFR_IivqXwVe9QKy_x3QeuoJFT8A9qJfb74FJ5GvN-Ei523RSMeReFhOK8", http_request_error; e_proxy="AcS87i1w5iKFoHCfl1-KJi2PTvKpmXM2XnQRoOzm_3BE-ZD6fKdXNIMI17NQSuiFb_qr_wYETRfeoyo"; e_fb_twtaskhandle="AcS70pn6H33wTXQLPTXNFvHbKRpynlmaUyWLI22qaqBmrp4SmUMjj1JI6nPlK7mXvkpiWVukHfwRJ44PMDcauQE5rf3g-jN0hc70"; e_upip="AcSMViIhKB1GOF_vp2cyruaK10einaQaL6KD98s9blQY19z-1MXe9GjcBKVwOdxYgYhzNFLnNEvPOq0qRndoegG2GxB83C17ONs"; e_fb_zone="AcQmajEjgtcv_e9TeW_G68H2gtDSF4XbebN2Z-pluD_CzhCjFmm3NZOHBEPwww"; e_clientaddr="AcSOZ1c-FlGFcrLreVtmbp4kunP6wTi0y9fUK_ecoovfbJR1y0035pDymxYk6JhmCueN3cA42eM3an7ZLVA"; e_fb_vipaddr="AcT7x0kUh2ozT1iYW6l8wGhdESM7Er6E7nLtlqAcJu7Lb0I9uoqlCdAMRNJ2DZ3DLYXtJN8C4w"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=7, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=842, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-17\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-18T16:00:06.682Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-18\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 122030298,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 247547,
        Symbol(triggerId): 247545,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 18-Aug-26 09:00:05 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ApXPdFIGSuuSFDNA97FsbD8',
      'x-fb-trace-id': 'HvBnJlbt+k5',
      'x-fb-rev': '1045450295',
      'x-fb-debug': 'e4kgLDovxJD7/vBj94UGjuZMWwIUQSUl61Sdv/s17v5mY1VuDF6q3v4bpPZx2JgcFMzXjHsbUs3g6SA94/tGlA==',
      date: 'Tue, 18 Aug 2026 16:00:05 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQdU4r7UE377h5sz_dZXbro3f8caAnSXb0CY0gIAhvDPayHvQBMhzcHp_wLLVNKrxtFU-N8fu5SqFjMoLEf"; e_fb_twtaskhandle="AcSf4vzLbrdxPshzcqwVl-Zule8yn7IHU5MmykpHiR5fvjoU_enM_2M-TY-Ikpi-q5sSZdzLroMN_WOUNMZG9UBgaBYLX5fg9JrwZTvzE9WThA"; e_upip="AcTlV5bgbIhRBwpP3O8bxspIeyukyIUsFnRELzAPz_9KPU7YsLFyUmK6oloKc9F5muDPjYuaXQc8g5y2itgMVWydKl7OATXSZz4PmI-sUrs"; e_fb_zone="AcQxSOOSHnEvYK6k3kM6Sf9jSt1y4yQH4I3FlNZw7p3vbjftR8hYuxFP8iCB7lN5"; e_clientaddr="AcQc9iwpe5JcUGrCaYJBdgu8yvSExc6anhzjlp0CvgwYtqJaYVls_-Tts5Nd26I6bzuZ8rgfzlflrj9B4No_EScfyggpp5j00HOC9bp-4Lmr93p4"; e_fb_vipaddr="AcQsamwoNm_CLhchGW8Ojzzg9nt2aZHHxp3tWvZZwwR9e_oab3n3P2OTkytaUSI9D4FD71XT0CsWyJPwLa1oDVMRVGm3v4wphRs", http_request_error; e_proxy="AcQ8bEzhCJZf612fAqBTdO4xTG8rEIOQYXsebe3OJuMtbSasRbdnb-ouq9ezN9BzzNWlUx2WaCBPSUQ"; e_fb_twtaskhandle="AcQ5cRMdGno0nD_Gebrg7MSnhhnBkRmlD0A1OoKkhGu9LMQ8LhDfCLmagq9uNt_oWJEDj7Em480iN1jamNQ985sjNCjkQBQVcgdU"; e_upip="AcSGdEWpe8K7PjXu1WA57ukSMlSDKo8UsQVNWQdAmnyuhomTvwPDNetxPK1rET2URnDohEU2jrJ9ZbCEMvk8UoDA3BqpaWSTKDU"; e_fb_zone="AcRLrPUrWCyh0AiSaF3AwrTHIC7CYoxoXFb09qsKlWB4ei6tZ_8UuP5uimr_OQ"; e_clientaddr="AcRHuk7x0iXbwE8S4y4bMEdOlpcB356Nzbfx9ekWnDn4VXKjchm2qLT25hASj8hCKtdZXT3lLlBtfih4EEg"; e_fb_vipaddr="AcRH2Fm4D3Z239FrQOgVOGoW1K716UFMwT70082JXqtdsWHViOMk_SKGvzg2VeNawx8mB5hJMWg"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1468, tp=-1, tpl=-1, uplat=718, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-18\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-19T16:00:02.724Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-19\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 208427397,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 423658,
        Symbol(triggerId): 423656,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 19-Aug-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AMfyEA4-IxFcsuFXB8w2V4G',
      'x-fb-trace-id': 'Dxa116PTyGJ',
      'x-fb-rev': '1045547568',
      'x-fb-debug': 'OmVkW/3Ke8EwOMwaHolVEgsM+M3V3/tXyV2ht5oD/pwbrS+aRX8oEMw9o3Hz5RKW8q9cBoSrI8ebyCXmsie6Nw==',
      date: 'Wed, 19 Aug 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTVTDGLwIClA82CKTRR8t0IUpIfkhS3r8A59uQPYsfUqZXofEv7R4xZLENCGye4uwa2Eqnf2qltoNdGd517"; e_fb_twtaskhandle="AcRS6OENDpo1uFU8UJtcTBhsG9UH1g7bpdCU7Dli_h--fjdU9TY8g1MYncAJ8ZSsbEvxpod9lcyshSlfu9SRCGpGaEtO7nr2EFUgsFtj79qnFZQ"; e_upip="AcTNhykASo_0xU85Vo5Mgd2uUdC6IYoPr2aLK8rqS_1FpObpaCJuL1-4NIg-GjFbFbrSq9bpQkgXHBeX478PMXl0BJPQhPrFsm3S53FKMC8"; e_fb_zone="AcQbOOgFIm311BUcT9zQtEUwTNXCfqjBYa5buzfbFZfAKxpcU-uxGmKoKJDfVuUQ"; e_clientaddr="AcTUjy1_TL6tcDJEYAqTfAVDoSV77AHT36b3cBAtEmJ0MfP7DnJKB7mbHHFcLap7YzX3aoIxOa88PrYOrEm96gD5klXJb82QsUs0i33uHaOPoQTh"; e_fb_vipaddr="AcRk0YGDce2H3NrwVAfX5zLkF-GDxuUpFtfy_cqMa8iOJdHYrWpsn-xGjGnr5Ww4wlLYCshUM9vRpHv5mtEY0S0GQn3aGMPrQOo", http_request_error; e_proxy="AcTr3oCPvqN_yLdOtBOi7pDwOyn-LkrT8aLVX-w1R8bdyGccg3YlhAYu-a5-h6Vkn6JHkQRAQ8DqWV0"; e_fb_twtaskhandle="AcQGQwHJ0XZ1rVkESS39f1yCS11aG4J_w0liKhs_aEd7ov3V-Y-sXW6bWBinMRm-5_imn5vVCptyyERU6ZSFSBMjtzp5cg7SinN8"; e_upip="AcSUIvJraCed6m3pseo66I-jkKAuVyS-465QZfSi80aK2_xsMWho5yE0iG-D-NIXWekwspPqmGNhL4UnRd1FAG5mFMP2qnKrpps"; e_fb_zone="AcRlCrHZhAWUZP5Sacjo5XQcfNYWTs4tgjeJgj3gp6J_CD2jpJAB6NsdnUSakQ"; e_clientaddr="AcRE305KuZgEaZcbFkslRwT6z9USULOSy5TDeUnu2Nl7Eh0zVPNPuPEIhk9Q1hwSGFoyRLrvwN38gfKac9s"; e_fb_vipaddr="AcTmwZxd_bbDxkNjheRxYZzOso8gbbgpE4wGXQQ8RpNiXauxomOimj_Huf4fcB-UvEauAovHbw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=6, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=831, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-19\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-20T16:00:04.789Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-20\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 294830697,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 597982,
        Symbol(triggerId): 597980,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 20-Aug-26 09:00:04 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A4u3bAuW6GcMZv390SK4PMV',
      'x-fb-trace-id': 'BAT6fRaGv5L',
      'x-fb-rev': '1045649367',
      'x-fb-debug': 'WO1KuFhv0BYCK4wEK1OhjC56SXIGeH8rqUNsGTzpORNT82F45sXOOgGu7B0F7PrlRMvRNbKg82wOKszDRavebQ==',
      date: 'Thu, 20 Aug 2026 16:00:04 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSti-DQ09XxRVXtz_mx0njY1kDibAsLkJbReRbXeYQMFVq4VCVWyunGo4FxFByNkla3a3sBmBXiEmSzMsfF"; e_fb_twtaskhandle="AcQP48ZtOO8O9JHvzUJn2VwcSLAh_4BVmfpyr8Lbq7Wmv8EILzHKpFejXwPzl3Fkh2uo_VcFSsT3JOTmvweocWRu6T5B3YAL9WrvvgMzY7Jq81I"; e_upip="AcQTteXb5M8yOOpA6vG5b6yCvwN2Dt7odUMi-iK0GQE-3CvEhOUuPNhvAUnAf198cj2KMkfa2Mcnb8XfjqxpHhQ1Mq-q-bnEIJ6MdkRlBw"; e_fb_zone="AcSEvl7IfkT1ikDv0GeK5mKdZ_e7fKu8wp9G8dfayzqzxNvm4okL9f8ryCETcgjf"; e_clientaddr="AcSnGr6HShbZiCFuwPKQlI_4udoudt2Cb-8PlTgrtiIvWuBGx4dCSxv47n_eOnJByCfX0c0fs0DDthxnLem5C0HCWmp5-xJPtkr40k4s34nrVMCtdg"; e_fb_vipaddr="AcTp2_yUktR6ursuqT7RTQzEQwJ6mDVN-Lj1KF6Qw4ZsJIJuPFCh3NJNakrSNe8b7vax7W1ioeF-fKlyLFzBzpWxP98zHhuqM20", http_request_error; e_proxy="AcQVgb7id3AzrDyVKuJVoqlkOG89D4r9mjQSxNEdnn2nWZcd5w6zTMUOjb0wluvBHyZdsQsqMmXkNVo"; e_fb_twtaskhandle="AcTb4aANfkB_TUGCy84DAQBhThUESVvb_qjv1WSPZYhWFxMeoVcE651uBRNd5N8QAnEwi-5XIPSQwX9XI08_jyH6BFi6F-2J7It6"; e_upip="AcQIZqOMepav8vsvoRfI4cVxKSZskxTYSgiFXVetVU7PvwlNdhX-EG65_xxq9_U4LGRrPStn2eK73FmaLdnENvxLPNOWqTTEVSk"; e_fb_zone="AcTWRk7LUTb18vLNA2wINnNzLlo7Q1wLmPCS7rran3UF8twNMZnR8rtUjpNvcw"; e_clientaddr="AcQpj92CdbO2wm3ahe0vhYp8RUjZJUIKY8OEuGIgTlvMKTkybgezDUdGWLbp7nO6cFMgyn8cvh10y3eh_Ng"; e_fb_vipaddr="AcSOTByVWX0WP68911uXNzLUzsXYe2kadr2TLEnBz73zCYLCHIYZsQTYj0u2v2hcnU3fURARGA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=6, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=758, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-20\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-21T16:00:05.465Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-21\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 381233596,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 773996,
        Symbol(triggerId): 773994,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 21-Aug-26 09:00:05 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AnEFQ0ap8yzIFjg42lldreu',
      'x-fb-trace-id': 'AD/lG5qflIY',
      'x-fb-rev': '1045737606',
      'x-fb-debug': 'yRXBmrtzhHiumqgNKM79vKdaSnv4rlQxuy7ruzDxbWJuyYNSFkxKLmzvj+tLko3c2M5+jL9jD28UxSHZK9BE5g==',
      date: 'Fri, 21 Aug 2026 16:00:05 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTn6J5kACSqH0RYn67c195VTKsj401ItxBySpXfTONnI4upONBtBJRTvSK6CpY3Xz2wV5aplMMGK5J8JToH"; e_fb_twtaskhandle="AcRXIqOVmuqnXrBsN3oUdUCITqmAfF-zdy5buqazxtS4248HYB8zSDBNQn0ZbqYEkGGN57-g9JrzwRY76mFsKqDwkJ6WPQ4vOEJ_XfJWzTGL5X0"; e_upip="AcRGLK1EzFdNS5440pkP0CHLF6Izr_75is-0oIwt1XCM-eSYo4xKDBiR-Qo8NQlmGSttqfd1aKGQkKRXlCpbTjmOvGUR8uwAikUDDNY"; e_fb_zone="AcSufHeR31EpC27kcLTG2gSR0qo4HWpzPtGnVmQsri6lKXQcvqLF3466WbitD0h6"; e_clientaddr="AcSyQ3KBp4bIbWMNq9-U_YZQMjbSiRRBVI_57Gy9Os4C-QTZeSAlrI0CWhMXB8a8a1bYQLzZ1xo-HuqGKYMDHcIiyLg6yhTQewGMox47D-gJ6LG_uQ"; e_fb_vipaddr="AcQWMGvTV-8NNJui0ldBhiAItpacwBYP6HAaswWlEQhm2_mBB1srpWJncnpVdRlGopZTPhcWrMiS7w0Eo2al3zioVuZopWEm26Q", http_request_error; e_proxy="AcTeOPjicpln62EJegfQAw9Zrxi7oyYfhNmrNXPFNhmbIx-nTbrNnop6zkMzEc8gAtbM97l3HPknHgg"; e_fb_twtaskhandle="AcTLF8kB-tUIU94jpcEno-XhFWaqBYr0ei8kB-D_esAd3EaSG8NA7vNE5rRJUqLpGWKftMPss1LmZSfrxZ2pF4bQbWAUNcxK2ptD"; e_upip="AcT7bspLUdTRpI4zfBwLqZyvXn8MDp9lvsHpywbasPnueEuCr2c0npnIl9LqExkI-wM9tZsTLRohq7druIwdBADYgCbybHUuAH8"; e_fb_zone="AcT7sevoRseiQE8vMJGGEMh4FoGdzxhG5-JqMEw2lj7XCCCn_QR_VhNh0DoFhQ"; e_clientaddr="AcSPp3fvD4QXmOdk4fuHh3CSdYhQtfpj87RiE5PzJlb6BP-1G63YXuSbKhDGQj5lbLqnA2btXQt1DMjlw_c"; e_fb_vipaddr="AcQYsQ74x-WGNzQ2wHhc2v727u03kNTMo4v9SSlQGU4HU4KeaDQXjjUXvzU6rO5rZWYvaCxek4E"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=34, rtx=0, c=10, mss=1380, tbw=3703, tp=-1, tpl=-1, uplat=737, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-21\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-22T16:00:02.747Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-22\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 467630897,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 948266,
        Symbol(triggerId): 948264,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 22-Aug-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A39YSZlH2iftuVcV_KaTQdc',
      'x-fb-trace-id': 'Djdgc8i4EpT',
      'x-fb-rev': '1045813171',
      'x-fb-debug': 'wERPKWuPHnksoewCIYnBuFQ8JrXfBBdQwfLvLOmm684lGdtnT9S8m5qAOWMFS5mTXaFS7ok7BkStkpIv9Z/hgA==',
      date: 'Sat, 22 Aug 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSnAdtltXndW-9rSwVLfYzDRedhka1HdL0zeVGPgC-TuJJw8dvoo8vPSPhlsUrw3-4hISIikcZPPaxvz4tV"; e_fb_twtaskhandle="AcSCoaCmiI9rqelNdWFJZ9NknvvGXAeuSOEtUq3Nc7VyUriGgfOLnxAinbhHAV25JcpX_gb2Eb4XMrdeICyWWmcEgSuRpWQVqF3hmS9fWD4Rd20"; e_upip="AcQrtmzhlPQxQyoUWA2VNqKZw6AWF8q9pWshM0TmxAvnGOcUAblljE8T458on_Cw-yjrIPjySHQ5876NYH_pF0QmCTkEKMunjXd6NH4g8z0"; e_fb_zone="AcQhV-zPjcYtIeh6E975KWzx2a7fcMq6X6oGeG-daSOPfnYjvuR0EGKJ-ofAsAr6"; e_clientaddr="AcRTmRSOt_Tu5CNmacJLycDuYdxzSjYn2G7GCNs9WfLo4gYCfVFNPz7eL4Gc-LKIaiLNKELs5x7kUAW29Tz8o1yV4B5GbM8W5sl5rbO3jO9ydpX5"; e_fb_vipaddr="AcQ3k1iCVSsuY9LjRdlZQFANk4raKGqPAfO7-ZwhS0QTXBeMdT4S8qNoHIQS5ckX3safAmWasBppvskoI-Unp3NIwP54yg0lrFc", http_request_error; e_proxy="AcRltUOSxMR-3vn7485TfKeYqfvk038g9pOpOzDaLFHMcAzPD120jSa86wljx81F8Dc1bn3LZEqtwrw"; e_fb_twtaskhandle="AcQt0Iwe4p3oivULlBICy0x0AAdxERtzwVdinwB-kti8htp0bwUiEOMzwyBpLdCVkMb6InseaAHl0lvv_G3g3hyt3o3KNXyVAhB1"; e_upip="AcT-KdcC_queSdD0mq4ydYh7k5O-nXNT87Tv-Cnm6qDE61G2ouE-8p4y8KQbHch-O9VH0HwslC9WlS45O7L0peaKvWJeFl1yI2g"; e_fb_zone="AcQ8k_N2pvS9l6jV7VSbevjU_np_VoLrhbk2p4_rOLqEyv-6Ay6VsdFlDFQbGw"; e_clientaddr="AcRHoVdHWaOHrOzHNZdg0gIXtSQAPoEEXVueAj9VJTz_c-_DMcmrmyJHoLX-NxtvykCBgNrI457B6QZZ7Qw"; e_fb_vipaddr="AcQOgBDNdgQi484od8JkBzH09-GPC1L6UO9UudknxOyUBxSZJycx9cQVDhBn8BIatmJdn_THPaM"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=29, rtx=0, c=10, mss=1380, tbw=1468, tp=-1, tpl=-1, uplat=781, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-22\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-23T16:00:04.514Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-23\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 554033897,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1126939,
        Symbol(triggerId): 1126937,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 23-Aug-26 09:00:03 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'APtm19GdFRUJu0IUS2Q-d6E',
      'x-fb-trace-id': 'FJMSy1FgB6o',
      'x-fb-rev': '1045836822',
      'x-fb-debug': 'gP6eftYVIAYdj3xON4335LOU3nOIL/5kg7BZeKOm5PT49dhumhojdOG7J8nuSfaIFt2FadCK7Qr404KmMwZqSQ==',
      date: 'Sun, 23 Aug 2026 16:00:03 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSAZX1IBO0qQjAi3S-M55qmvm9OtY09qTZ5IXeu5otTrqflKj2BoA5kIZmZ2dQ5bn1lnwx3H7WCqH_HKTo3"; e_fb_twtaskhandle="AcS_NxSlHDc3MRTCdqDuBVhRnSgYH5_am1dEykZoxZeFUT1d3zdj7uqdYCfvf-I3ljAaeoe_OXUPdMV5_8KldFBsvRFXiFtKkvuqZhiFzivNVVM"; e_upip="AcRsmnetoo2pRvM-WnTcFcqUsvf3iroLZvgTh0-ClgAZemolaeJjAklZ5uq18JniTK1Oz5QGJeXuzQdg8UuTUkIwKj0o4POz6EIrgAlVGKQ"; e_fb_zone="AcSfC5SLcgpyvxbktbeETzjT7dDESMig5Q130klix46FeSUOQB8IATFBeDeo7k1i"; e_clientaddr="AcR4E4jVUMku4NL1okwQR8toSgGm1_knHHuT96FxhLybYVZ0lC3xzMBv0w7gwz0s6IARveSSkEaNQkC-3QXeHZAP1gOWUcRNohc4M26Pkka1Czjdjw"; e_fb_vipaddr="AcQJYEWuDT1TuhtLcSXE7yIUuDP3-cmw42FahqgIHkpzBVNVAsf4UAFWU-3NZRtFAvazm5IQiFaQ87uImrNUk4XYamfgJDIDLzY", http_request_error; e_proxy="AcRQfj2c1ZU-jUYKux8jJMHCshWY9J9hPTkji2yqwuTTALgY3-nRCrhXOP_kAHXk-Sjr28UxIa2JQNw"; e_fb_twtaskhandle="AcTUuQqJanAlIUZB-cuUIzoXj9C9LXjUtsx7M1oReuEV-oh21_7KhX36TiYNAQeFr7qgfKrBTLtJhV57QqjQa21e_GtPSEeVfcHK"; e_upip="AcTZ_J2_AC-8gHYVeoFawnyPHPgZf0WfFR817R6otTuQ6c0eh487qrn-EBnOLyW8v_yyr8NQ_zcSa-yupHZVQ5gqWvN-wbycXKk"; e_fb_zone="AcSJKofJbzPr3u3TpM2sKoOG5drYrmpJNS39yxyiNE1-yUhrjzOo2uNVgwR92Q"; e_clientaddr="AcTxTYLmuY7JKsl60OcphHz96wBTbOgjTMGfU6OLXvv5OEkI5L1TKKyANSjvKKkBzshY3ilQEhiuGy4kzQ0"; e_fb_vipaddr="AcRN9Kbxlale6zK7awVbEWogiwhuRU4prnsn5QlH__FmHFZbri_cR2aNnrMHViN476u4AnWTdwM"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=37, rtx=0, c=10, mss=1380, tbw=1468, tp=-1, tpl=-1, uplat=750, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-23\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-24T16:00:01.893Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-24\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 640432603,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1300108,
        Symbol(triggerId): 1300106,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 24-Aug-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A4whp2BP4bDS5O8lecrWQhh',
      'x-fb-trace-id': 'HEKt3T5W6ci',
      'x-fb-rev': '1045866108',
      'x-fb-debug': 'nuv1zV9hrR/aFr6vUY6I2OCeF8BpaMXMJl2DNNZjTIJIQgpJKBLskZ0zASVw4+8t/8NGH9ErcRfl3PMhqdJy3w==',
      date: 'Mon, 24 Aug 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQ44EKjk8ooI1sPVlQbme-SQOg84f9Q6AYAr7JirhTjPf9mn50MbfTAGPlfEeFeynBbO_bt9UNx7I73zrqu"; e_fb_twtaskhandle="AcTKpfBQQuxdJ69W6v333bjXSXavKLU5lSdBsKHL5orLnDId7tkoWGEingtTDTGpmaT5ej0dCD-G33riZqePibMZd9vYwAxEXloBXnXG_kdImBM"; e_upip="AcQlIwquyDBdGTgSj3xzWl5vqO_cGtcl_A5XhyAIdiuNEAvmowxfCy8QC1hl8mdqGCVz5eOJEDsDWuWx5orEg6OQrdRUbb00vypx10gB1K8"; e_fb_zone="AcQA1TMJvdBXyZ_J8Gh23Y36R3OxxD9PrQDhCIGtAVyljJGFK9LEjc9t9uG88T-R"; e_clientaddr="AcQ0MxNAQDpRUDq4oOweG7yEiJkmeq1_fu8W-SeE7rayrdlDmx3UmtwTebKyD-XdQffWp_2qdDcaGGi61NkMZrAJ0ZOXBPLVhA_GkwzD7HnLn13kbg"; e_fb_vipaddr="AcSQdaXLwElmTbXR2ZR9JUySjvuQ3oC0rrY5tDmgniBVFp0H-o3UdgO3zlrc4kIVMhZhKRjR4c2fGUyBCNeNxGwCtcRKPCLt4IA", http_request_error; e_proxy="AcRhsw1vqAGVpY-VWnGbS9ihkgZnqlwtzXbD-snhgPY4sbB4pH5_wo7yiagfN-iY4fJUnZcn8GOLadA"; e_fb_twtaskhandle="AcScauhnJOOxIw_x0nMRSoZYTQ_BiBI4t8_FHEg6EI0_6ElGPWp8p5RBEVcvZk2UHVIi-k3wtdGPEWZEB608vRtUNbAJU9R38FrS"; e_upip="AcSWNECt57dr2JEMZWL4oUtWhjIMHZMy2HJUyG5p-rtEa0xCFu2C3MnU4VLKmitqJbPIpYu3eXr7XcvJt2QA5junzzDau8_ZDl8"; e_fb_zone="AcQogu9dZEHFuDpKIStoI43_DfN8xpm-w3oarKM8wP4itHiR06OopGW9HERNbg"; e_clientaddr="AcRmR8_aKd_0ItcVIoiriGW8EBuCLykzgocG8muh6E_OG65UDU8pERk81rLRPR8in3n3kXbga8fIXztS6Cs"; e_fb_vipaddr="AcSwhX2vlUDzLc8HHJyr5GDXhZz1IwWSAtKhMjaz-2j-lzUPDBcbEEvEFM-SuRY4F5WRJXOY"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=44, rtx=0, c=10, mss=1380, tbw=3701, tp=-1, tpl=-1, uplat=235, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-24\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-25T16:00:05.528Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-25\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 726837797,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1477752,
        Symbol(triggerId): 1477750,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 25-Aug-26 09:00:05 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AyTZF2T66rq_f1SDWZhbYy3',
      'x-fb-trace-id': 'BhNu7Qk9qFj',
      'x-fb-rev': '1045980075',
      'x-fb-debug': 'Gy9ywH5m8+r4UqvYzbRwOE96ms39TDIxZnGSj4Tr2D9Qw0r1X/SzT5SJDnPBz5zP8a9BffXmHNrivFo5ToVLKg==',
      date: 'Tue, 25 Aug 2026 16:00:05 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQfZg3SoMQS5u9DtT1dfh3UbOwU6NR9wPDCVrrRjtwHsVbqX3uylBSh82UiTjceggz7A7eBTqRDY4dXNv8"; e_fb_twtaskhandle="AcSUK0jp7TY9Ol2VdLJjMU9jxxYVs9udu472PeVpaqMPM4IjKMBiRPaVlxi2LiBn2H7dPzMx1YrDMnlq3epTW6EtieYBcO2Cnic8eYc7I4mu6Ao"; e_upip="AcTozIWY7F52oD7AEDHSm7qkTv4xr3KMwPpKA-jOOocTbiuSg6hWHNMQr1tP01OrIaMHEDKZZWfASZB2vT4l8teu9E8DnZhWuAl20jiI9LY"; e_fb_zone="AcROkW2KNep_flRLMp-wav32dQmGC7X-mAaFoe0jaKiquYhwnzMgb-r2Q_-d5Edt"; e_clientaddr="AcSMGSQ33ht-A139-ATQG8Tmoujn68Tg21qgiBq04PIyn-zMujQrOZbcndY0eceoyggoY07KAEYVqLDXMGAP6F75UCxEhZlmk9DXOUXWf6fMLGcrpg"; e_fb_vipaddr="AcTD4hDamXyJMMwIKJ7WCjyOkpyR7UJQIRhlyUAu313d1I8MtR3z48D1uIJu3x0DD6Wdmws053aqZ6p8PDo1yV_Q81x1kENZsY0", http_request_error; e_proxy="AcRPDwnvGWgDdlN4g295R3-_gYl0yZjjeo6OiGkxvmVPph2I9tPRuN38wi7bYhwyPSGt3hLD9ym4HX4"; e_fb_twtaskhandle="AcR5KFxGz0OXRh9YJwS7Jm3N9vTWxG5WhGRyR2Qe4bWR9A0m6gUp71Fj5966MRQyxHdqto4tusc1TUWIydkG7fZzMn1nMIxCcsvQ"; e_upip="AcRKJstoJQGBV7zP9qu9GKOdtjdqns5HjDYcNZSBxkh9IW6EUqSQ2RfKvu1FlSCNN6WwcjckGRuVR7Bq1vw2YgviZx7lxtRt0Ik"; e_fb_zone="AcQxN7Ef7lu398rQ7LZeYob7D95D0p-4buOA-yomVAgsHLAry5hWosfgKvSMog"; e_clientaddr="AcRMj4KtDHgAFMJ_zUTnDQpmOxQwb6aHHZNwek7xhoVm9uWQ_9BGu5CSQHvKunK2b4tD-0bQERa6J8PO2bQ"; e_fb_vipaddr="AcSgzVIbWWqGx0X43KsxB7XI0jh3mXCaCE81hEHKarQJDTJweR2CCMKp9iPMVv6ecmNWG04CDQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=7, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=849, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-25\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-26T16:00:01.498Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-26\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 813234497,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1651498,
        Symbol(triggerId): 1651496,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 26-Aug-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A5R-AlQUEWN51WCXI06ouBD',
      'x-fb-trace-id': 'Cc90i79v3sx',
      'x-fb-rev': '1046074865',
      'x-fb-debug': 'ix5LHFFSoduuOcQq+SuizF+Mlq+ldlZiqMladrXTLWGBTI11nFu8Q2/y9y6a/juo3zW7O/7j3e5CUZ0naxMFew==',
      date: 'Wed, 26 Aug 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcT5PRpU1_jj1g3KkvPIYbt0d5fbpd8e9m_O4y8vXa7T-e419TDaT73BGagJlLeS7o5cBR4HBTVmSFMh0cFk"; e_fb_twtaskhandle="AcTWAwB9IMIQ6FEwrOT4El1tvItGgtZNoTzl89bM4vHN9_Mxc9Z2i9eiQX08BNfjq-9Nz2KmdOeRYZOHgFPZIn_f_SCWcUZObWLUvi28MMrErV4"; e_upip="AcTQDe0aFLfoeNPSC7h3167zrAs6WTCnFc624F_HBL2171R9XJIz_xB5Z2RLT0HzOzZDvXkfcF2hV-rF-EcvshgbvIJaFH3ITZ2Im5lQ3tk"; e_fb_zone="AcRGGMXhPVuNBQ-JY8oaQam3947ij45fC-g0kyQmVRKFVBqgateV_wKeU-zX_gVX"; e_clientaddr="AcSfRufVD6KcM50izBLDpBTwLEjWBanurCHESB6oG3B-Wm0egQYFy2GWamC0X_rbhg1eBJCoU8Wlp2hGJtT5ipLxtJRBoqKSGssPx-gmcER80iDz3A"; e_fb_vipaddr="AcTby36SgZ1Uw8ZfRBIKZqrZZqq5mDckPJgQkWpXMH5B9azDAYzaVVwlhRtrH_G4Lqu_u43kqxJEcHn4jlHUoSEw2sXnWNYP5hU", http_request_error; e_proxy="AcQw7DnDf8mjypmQjDFDus80NQ5lTtmPoCc8pwjNFVQJS19PKNMhWOBOcftaxpkfM7qHEtQu3AoQruw"; e_fb_twtaskhandle="AcQ3n7oxEzf5HXcvhFg42jFa__vr05agv27hH_2giwl-fem-N9DTS8AC6AtBDj0qnXk2WlkoDn1fe0FcdIpd1BIGH18WFLplG3eT"; e_upip="AcQwrfgpBdQsZ9pYpPHXCX7XZYvG7mSouRvgAQvxz7w1By3oC8H-SDlnSRS-vHSbRqgym6SGMZUMcaQNufWLW8QoWKQHPVHZBdI"; e_fb_zone="AcRP5QXo1l2cz9bWTgylzaSPGZ0t0623Lk8FKWGp6lUrtduTaiKv1IQDE-2MWw"; e_clientaddr="AcSxFKJWqJMV-jOCypzrDBIkF7TbvF90O1-t__xIrX_poBmwoqbBEdEr3IJpgzWrDOlPSRut2mpL1f5z-T0"; e_fb_vipaddr="AcSP1DTi7yRTEsiNBN-ofR5NYihG17RZyvzu_saCfE7BwJmOWKK7So1bbgrduXp3RSew_jyorw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=7, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=330, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-26\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-27T16:00:05.415Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-27\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 899639998,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 1830350,
        Symbol(triggerId): 1830348,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 27-Aug-26 09:00:05 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AoSXMmOfhCxjf6QBt-c-a0K',
      'x-fb-trace-id': 'DMIjzZZvJVj',
      'x-fb-rev': '1046183720',
      'x-fb-debug': 'xTctRmZKf1mYuKRyO7MK5TN+t7WVN9YdkBzk03Mb71vJsz7SQGzLjJL5PosXBIHAcRXQqXepcs4jS32Iesnt9w==',
      date: 'Thu, 27 Aug 2026 16:00:05 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTkHy_UyBaD14WX-HS_kjjQ5ZfEhGWO7kA1C-CwAL2AQ2pEo_nePS5A5-zNMgRyvos6zldzoKr2VBi1WBeg"; e_fb_twtaskhandle="AcS1ZQvj-vu2RBom3oknUwvjMecbR1BqlNhSi_r9ya4T66rtQO1eYaMzyy3BvHSyg1VKLn6c9wuOuhDvUHOnUkoFu1PZAYVUYdOV4_gLsCHUp6Y"; e_upip="AcTfJs_iNS8g3C9CWbaLIAM4sid1jquC14_3S3nucBFus6QkFMkavcwejhDc61ImaxuUhJov7K6t8PhFbfeKNXDlK7S3Z7ndzPNZqj4YiOM"; e_fb_zone="AcSCX3bn3jtq9Hx_eUg3Sm2sA3-r-ziw1drmy-bnX3-tC6mujPRyjPGIb-gu1cK2"; e_clientaddr="AcTYtFuDxOi6qaUHDYqfMPHLtV2O5hpH-c2tZizoWN9M8h0APUiqBvnTRpoOOiHGqVKWeiyPAo2bijauLnsPg13uLTNhlxsntdg6JY-3F8xZeQBUMw"; e_fb_vipaddr="AcT0gzw8I8vVHTIQJW-nXnZTWkkYhMzodkw04vRj5LmbxO2Y83fTa9u0U6Gdw8KPw9W7PsyOgdGIY0Duypu2ELLuJsg113jvskw", http_request_error; e_proxy="AcS6aDlqL46jbmv8KgxcyhMapXQ7PuFnot3W87E59TsArGVWgiNl963f3efUe8ZUUZrumQtfAq6tGWw"; e_fb_twtaskhandle="AcQcxLbawqBwtBLm2AORLuUmkGCf_3XtKIZWTLo5-VHxVm0ozzEJlP838kPtN7aj-K1JHjorZS_VBQZv4RyWwRLbs1XCCbxQJv8-"; e_upip="AcTSIg_F4eYer-3CmqGBsK_xHNMjbJtFIEUH98bn_D6FyrrnIkmIjAtWTUz7Ila7vxh6aT-K2HiQ_D2hQBhaZ2hnPaR0Ca5m6V8"; e_fb_zone="AcSiBUkko9md_wRJ6T0TVPTe-w_DDYbHwU7Aeut0pYo3Kx6Zd109ptvYcBKcPw"; e_clientaddr="AcTuFe5_8ZhtedqPevjCDxqDuw2EYSHiWczHaBNmFWSaPQOd74xjgsHZsvxkY8wh0-TXdFzzTANMVUKtD0I"; e_fb_vipaddr="AcQLxvJu8lfC7ltYNvOM9oSolGQ45iOTYahDnzzUodxsdnlMEr0_c2MHXGVi4D5GvzALEDapJQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=792, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-27\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-28T16:00:02.533Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-28\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 986039111,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2008387,
        Symbol(triggerId): 2008385,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 28-Aug-26 09:00:03 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'ApiLCmUhUMKtkhhnpdk9EX0',
      'x-fb-trace-id': 'AaQb9NawjR8',
      'x-fb-rev': '1046285972',
      'x-fb-debug': 'aHR9NVEYX19wmvRFjzJp+03bR+OWYYHQeZYZmVT7Y5fW2F1aS1QftJX41lL7fSWKywasxbI0zx4LCI7m9/dxAQ==',
      date: 'Fri, 28 Aug 2026 16:00:03 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcT2g_-QnDb6YthCqV_7BJvzfGzKCO2I47sPSiQWpxwhZ-9rmmoURKxYLFYV2k155TgrxKvFSnZ8bBdfg3_c"; e_fb_twtaskhandle="AcQa8ngOZlSusexN5CaVSYFPH8TM5xeK8qZqQEKLqclljmwd9V_n63apkxpO-FxywmpnUb5V6N3msNCJYyUoizrJKkY1j1rH8tQiI5RICLPQ9Xg"; e_upip="AcQ6ak0mVkvAypRMB9dA0gRvZJNvlM-ujtYPcBug75or4zwGtZ_SnWIiJ2AHDV9zvavV-CUddajlrCd4rZCZ9bYmcpUuc4D8zMWm1uf1DQ"; e_fb_zone="AcSYmPpwgk_Frys9uo6J-PyUR_uNEXOf1K5rJftndo4OgdocofqD1_b_utwcF6I-"; e_clientaddr="AcRyu0O9TSNzuFe9GibQbgNOzOWMBa6sVIvfMcnhY8aklgb_99Pk0S28gFhv91COibcXTV4lrUfkSMn496tzRFMRBf-k8IfRElFea_pTatHynDDOoQ"; e_fb_vipaddr="AcSN5Oi5dTZ4VLlsSPyJ6hKvJX1qY6vNwhu8phID5gUcjbv0tvSNKJkZrVALhDE83yTlW-5ptgCBFhIyUjLS9kLpandy-014uGY", http_request_error; e_proxy="AcQMRXW_icj739SAN5itmrfnEs9Ld_j68DHEsjE5ssUU5Hdno2qZ2RcZCoCzh4iFEYvXRgREG3WiWlA"; e_fb_twtaskhandle="AcR-XsO0hxGDaHK9VjJE8XDvVqfSCHRyrGeinQX7A_QhyFAwe7iXHSjIhds0YjefeU5YtUaDCUwa03-ajamZvJ7ZHt1OD3C6l2RcfQ"; e_upip="AcQRbVEWShRzE2x4-Gwj4TjQZ-ssBXhUFzZK_So9Bmd-kNP4h4snC9tgGtbvahVH0a1VemnfBbh1jpm-p7lCjZ6ln9dQnrhFV1w"; e_fb_zone="AcTPGJF1IhI1PUFdW_hhdZp2jI1_GNw7yIrjM0aun-7Lu6Du_ukcsuSye4-rEA"; e_clientaddr="AcTLZHgBF8t-jAbnbtBC_o21DDgMhbZr_j-V2zGrxT1AUl7EHT6GAVHAn7zW74sDdGc0t2UOt57sxGm4rpQ"; e_fb_vipaddr="AcR9gTrZH1tt3fo-QH1l3DlVTQu86qmIt-efVJRKR-Wu9n7e7No_8P0asD9sfP5fVROgDFn-fw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=822, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-28\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: '',
  stack: 'AggregateError\n' +
    '    at AxiosError.from (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:874:24)\n' +
    '    at RedirectableRequest.handleRequestError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3299:25)\n' +
    '    at RedirectableRequest.emit (node:events:509:28)\n' +
    '    at eventHandlers.<computed> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/follow-redirects/index.js:49:24)\n' +
    '    at ClientRequest.emit (node:events:509:28)\n' +
    '    at emitErrorEvent (node:_http_client:109:11)\n' +
    '    at TLSSocket.socketErrorListener (node:_http_client:593:5)\n' +
    '    at TLSSocket.emit (node:events:509:28)\n' +
    '    at emitErrorNT (node:internal/streams/destroy:170:8)\n' +
    '    at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at runNextTicks (node:internal/process/task_queues:69:3)\n' +
    '    at process.processTimers (node:internal/timers:538:9)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-29T16:00:04.816Z'
}
Error in scheduled job: AxiosError [AggregateError]
    at AxiosError.from (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:874:24)
    at RedirectableRequest.handleRequestError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3299:25)
    at RedirectableRequest.emit (node:events:509:28)
    at eventHandlers.<computed> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/follow-redirects/index.js:49:24)
    at ClientRequest.emit (node:events:509:28)
    at emitErrorEvent (node:_http_client:109:11)
    at TLSSocket.socketErrorListener (node:_http_client:593:5)
    at TLSSocket.emit (node:events:509:28)
    at emitErrorNT (node:internal/streams/destroy:170:8)
    at emitErrorCloseNT (node:internal/streams/destroy:129:3)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
    at runNextTicks (node:internal/process/task_queues:69:3)
    at process.processTimers (node:internal/timers:538:9)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ETIMEDOUT',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-29\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> Writable {
    _events: {
      close: undefined,
      error: [Function: handleRequestError],
      prefinish: undefined,
      finish: undefined,
      drain: undefined,
      response: [Function: handleResponse],
      socket: [Array],
      abort: undefined
    },
    _writableState: WritableState {
      highWaterMark: 65536,
      length: 0,
      corked: 0,
      onwrite: [Function (anonymous)],
      writelen: 0,
      bufferedIndex: 0,
      pendingcb: 0,
      Symbol(kState): 17580812,
      Symbol(kBufferedValue): null
    },
    _maxListeners: undefined,
    _options: {
      maxRedirects: 21,
      maxBodyLength: Infinity,
      protocol: 'https:',
      path: '/v22.0/681389405061633/messages',
      method: 'POST',
      headers: [Object: null prototype],
      agents: [Object],
      auth: undefined,
      family: undefined,
      beforeRedirect: [Function: dispatchBeforeRedirect],
      beforeRedirects: [Object],
      http2Options: undefined,
      hostname: 'graph.facebook.com',
      port: '',
      agent: undefined,
      nativeProtocols: [Object],
      pathname: '/v22.0/681389405061633/messages'
    },
    _ended: true,
    _ending: true,
    _redirectCount: 0,
    _redirects: [],
    _requestBodyLength: 257,
    _requestBodyBuffers: [ [Object] ],
    _eventsCount: 3,
    _onNativeResponse: [Function (anonymous)],
    _currentRequest: ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: false,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: false,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: false,
      res: null,
      aborted: false,
      timeoutCb: [Function: emitRequestTimeout],
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Circular *1],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    _timeout: null,
    Symbol(shapeMode): true,
    Symbol(kCapture): false
  },
  cause: AggregateError [ETIMEDOUT]: 
      at internalConnectMultiple (node:net:1194:18)
      at internalConnectMultiple (node:net:1270:5)
      at Timeout.internalConnectMultipleTimeout (node:net:1811:5)
      at listOnTimeout (node:internal/timers:607:11)
      at process.processTimers (node:internal/timers:541:7) {
    code: 'ETIMEDOUT',
    [errors]: [ [Error], [Error] ]
  }
}
Error sending email: Error: Invalid login: 535 Incorrect authentication data
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._actionAUTHComplete (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:1622:34)
    at SMTPConnection.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:556:26)
    at SMTPConnection._processResponse (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:998:20)
    at SMTPConnection._onData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:774:14)
    at SMTPConnection._onSocketData (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:195:44)
    at TLSSocket.emit (node:events:509:28)
    at addChunk (node:internal/streams/readable:563:12)
    at readableAddChunkPushByteMode (node:internal/streams/readable:514:3)
    at Readable.push (node:internal/streams/readable:394:5) {
  code: 'EAUTH',
  response: '535 Incorrect authentication data',
  responseCode: 535,
  command: 'AUTH PLAIN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-30T16:00:04.843Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-30\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1158842596,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2361223,
        Symbol(triggerId): 2361221,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 30-Aug-26 09:00:04 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AmHcrA_jRHJ8HOFIjZAw23B',
      'x-fb-trace-id': 'Cc8PYXlxFdQ',
      'x-fb-rev': '1046382712',
      'x-fb-debug': 'hdDEyn3u4DyRzAjwJM47fK4hRzkeJWDwXHu9mFRZYS7LW1GyrOiPvpL+yK5ANYPsd45CPuoG89KRoFudpXlpUQ==',
      date: 'Sun, 30 Aug 2026 16:00:04 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSHrQPEqi2hfTC_YawKrB-kaQkOXV6gC1cwfbjMJShEsQ1cBxRlAAsfO3JwrePlO-aA5a5zVFf0XlhARmT9"; e_fb_twtaskhandle="AcRpJZnsjsW6Ar6CSzQcJNnBFHwC_bEBwRwlIWVmCBINOOu0sfi1uURBps7HQzB-dLs-xau-ZNNVc1WC3cKwazY76qxXawM786wQaLO8lF1nTKc"; e_upip="AcS97sIqEaShCG68qpUgnuDdN5ZPYBOlsWIdZQf8pe1ceKnPAoclNAKiSFR5afX4aZtkZ1PrBSDdzaRaHDploFR7CCRxggL0iD4nctyU"; e_fb_zone="AcRNhf5LyyqR9QbRrHNoImcpHLmucvwWppeR-Ay7SSBYbbR-HqhPYDInMTqBMR9s"; e_clientaddr="AcSgO3c6JUNRUm6aLy02EYwt_iCunYuOcf3jOp5_SlP3jSPpGjTNPzBMIYrLuTUR9cMYTsWzuFPDvo2AcZ1D2Ie_q4AyvxXajdwphOx2dzHbAp4"; e_fb_vipaddr="AcRo9iHJ_PeV6kwx7wII4Ryb_wuBp4A50jECkY4FoD7DNdYrGZ1B9TLd62EIrycmjgQ4Tc69D60n6Pm30Hjx6_QrFJADX1yXzHQ", http_request_error; e_proxy="AcSy1cXJJ7b6uii6e_ffvFlhkxkPRaddrAQbKOT2ppzHnPbhrvLV7ObAux9iy626Y4dvnorzkm9ShEI"; e_fb_twtaskhandle="AcQ_XMYyyoTpShm4F-ltuTjPwf1G9Vib5y3fxf0DFutqHjc589G0v0JrbKZQ5wiW2OokdOXXKQ9iD051jRy6yWW01RgsQABraqE-"; e_upip="AcQ1NJod1dqUr8Bw0VrC4KayVIZrAjrLbhxw7i97jv-ra-sOAViIpPZlbl5Jh4Uj0Rz710wV3FJP9DIhMRo8sddKsBOaiHZ1lTg"; e_fb_zone="AcQAn9pxDOEE7GGQD4k553uqwqyXfLXKCRlj7bvB1nE2KVg4JgJXllwsS26iOA"; e_clientaddr="AcSdVCpjXESMisgR6Rkm4MZuy4CCguDdC8DehtQL4TV-RfxNNV_H3gvplr87fhyqjOo_5V1b_rl-KYaewEQ"; e_fb_vipaddr="AcSS1Nhq5Cbeahf7Ybt_gZAkPgOtQHVckBwQMY-2QB04aqLz9E2Nnr18NurHAhjZrj6mz0UHqQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=3719, tp=-1, tpl=-1, uplat=805, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-30\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-08-31T16:00:02.667Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-31\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1245241997,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2535959,
        Symbol(triggerId): 2535957,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 31-Aug-26 09:00:02 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AsddJJP_-aVDZBvNpN_RK9r',
      'x-fb-trace-id': 'End2RzCuql1',
      'x-fb-rev': '1046406705',
      'x-fb-debug': 'UjodUe+cwldIV5Ss41wA5Or7unQBGYV2BKtfnjCF0lhkCXnRLEcO1q9s3O0TypJafa4cp5hdYsM508GDfgAgqw==',
      date: 'Mon, 31 Aug 2026 16:00:02 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQpRlJ3Ol56RYCwFPsmPqqfxi4IvKvDP61xX57PjUchSBCke9cb1Qvssnb3bmFWK57ArA4rjaSQcK1nMeqf"; e_fb_twtaskhandle="AcSOkdapTwovBhxcrhvaC4TIYZ1ygYHU2u9vm1HV0jbIgWWcXnPfgn7YF2GBC2Zhe44YxKkwcPJo2MRFgmGvNLDWk787fwrCZEFu6Js_Y4qPphg"; e_upip="AcTS7ijkbqHSgR3ApQJGj5YkKvcgfb5bRN3FTzmBZiFYjPRQ5KnMlij48j1T9VWfmBlH9Fzta7w8E2inE36RifqL4B_cTzcfFctRbADZdr4"; e_fb_zone="AcScBsPTW3UoGg5vxm6Tay2Bjai9ARvhE-BbvyHiboxpje4Qskg4TpyiIyzaZScu"; e_clientaddr="AcROjoTH9aVfyNYzvb1bF51t8cgWDSMehQyt5CzPYe87ANIj_j_RG2gmVuOM1F9wH-zwizkRFimu-X8Eqk8rcLYQo47oqlsiK5rarBbcKY694Y296Q"; e_fb_vipaddr="AcSUKyT9cGpTMOjO_YNjsj0T2bhiluBPQecNJwP4yopGbmIwlgHgVDGgYEZQTQuHJSCacJPZOUCvKb2DusavUUoqTlLeiXuAK7U", http_request_error; e_proxy="AcQd8l4FW5ViGWDRuIBLmti7lwFeeqSc6fTMbc8ZzxkiCBw7ZNnXhjz0l_RwSoouSwK6Am8gcQKvYaQ"; e_fb_twtaskhandle="AcQ1_dEcmCIdS9qpT6SdedkhDmhtVkArdP_twQCBOuReKFl-nNdXpF_ncpFRMn8zwM11zNuovys6GnFJm7T9Z5TWRshzGSYC5zjt"; e_upip="AcT4KOhxNJhRrR-l4u1zFEI1TWha4adOG9X1PjbkSI4OfIcyDiu9ivO8M65NMIWIbkgKnMKQeC8aR32cG9GeShPFGnbcTqlKN84"; e_fb_zone="AcR0K5maMUZJloBhOvUD9kJ8OL9KAEXt1emF-msgZQqGSd_yZFnnXKwa1BzjVg"; e_clientaddr="AcQNmUPQBj4_tJEEEp---k6PG0_ozKmNse4mB5vsSQOYF8vePVlaEaXhJ5OAh1vlraOPU3NvKP2mKRWulTk"; e_fb_vipaddr="AcTbGZNk6wux7FGp4aT8Qn3ILE3QJzQxkZk4ZtGx0wGSwPl2YOyiJOgzNV6IUUzZyK6LQ2y-HQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=7, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=741, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-08-31\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: Connection timeout
    at SMTPConnection._formatError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:814:19)
    at SMTPConnection._onError (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:795:20)
    at Timeout.<anonymous> (/home/deshitbd/server-erp.deshit-bd.com/node_modules/nodemailer/lib/smtp-connection/index.js:237:22)
    at listOnTimeout (node:internal/timers:605:17)
    at process.processTimers (node:internal/timers:541:7) {
  code: 'ETIMEDOUT',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1729:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-09-01T16:00:07.058Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1729:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-09-01\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 1331647396,
        _onTimeout: [Function: bound ],
        _timerArgs: undefined,
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 2713969,
        Symbol(triggerId): 2713967,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object]
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 01-Sep-26 09:00:06 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AntJ-wm8Y8iUYp7bSeMdQas',
      'x-fb-trace-id': 'A4P99jxM/7P',
      'x-fb-rev': '1046527095',
      'x-fb-debug': 'RvbSU9zDhW49DDxqJ7AAd1aoTr2YWlCiUxqs8vnL6btyoneAv2y740p/wqSjJYnE/2Ib29hKFp4V96NI/vgJoA==',
      date: 'Tue, 01 Sep 2026 16:00:06 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcSCXoVtQUumiwi2GJHHlzO9sJrjA8WkBffjRmLKgbnsX4bjWjuIUoswqX2Gub0yfhouWWtpky2g1PdIo2P1"; e_fb_twtaskhandle="AcTc5i4TmNT9jX9wflj-YMorhNmTxoRjTUcrkzM_R8tXPwkrol4LWYjyX6SmnirxeLkcJrE4VYBWHovW6L_XnEXkZPVMTPyXYgmi51NY2FlaMQ"; e_upip="AcRPVJROOrlvVjQo3UJ0tKnTUUrAQvNNNROLB_qKCBIfhCjqkdDxLbNVsY_m-qLizyYuPRbFwDhOAb-6cFV550aK09cZsq-QT7uLvATPIiM"; e_fb_zone="AcTtbWmziwG8mKXBrDIzcADd0w7AeYjI8P-Qx_-E4eZF94xR42j5dumftrve048Q"; e_clientaddr="AcRPoIUfnqmv_W9_fLrFm6pDmxh7fWjJfp-pYB2S9WSDSYsX0Ga1aw3Xqom0G519HbOlSLK-TimMpZq4536NO0h1xiqLtSfgBnaJId_Gn9QKQUvZSA"; e_fb_vipaddr="AcQju0fw-tbUdoCXt6Z3-o8BGkuzMjpWwvn37HpwC9bDMVmrB2S46itfnAcZfvd4kYak4jPLuOohK7CkiLmkPUDp19KB-FO55xE", http_request_error; e_proxy="AcQ5K06sSHmr-kMpo8GQkVLf31chXJaXxDN20DcssQiCJnyUi5mPSa6WkAP_Qsb5ER_kWlkvUMKEsw8"; e_fb_twtaskhandle="AcS4fzd8SHJVgxJ3LhwW4A01KqRYq5iAe1kIZprvH60hd7vJMja1rrv4YoYT9R2ParuXg_qJzofzHN2L5MBKjCfJc_yBpOhFHyqW"; e_upip="AcTuwWvugqNT-QWNyqwXWKhDYVLfoTwiqHEG4DwLBmtYtQKnqB3Z9HICViGHkKWg_X5jS25e0EULP3TRV9d1mlI8kNCVtRlSDac"; e_fb_zone="AcSY3fz9ICGAPx95fuywb-nlLNNL7Nx3tnNwWtjObVCLSXTG9dOduajziHSI6w"; e_clientaddr="AcRXOQrI3Y-joeK039w5JGNjINZLKNNGPaaHnuO8MEz0CZWDmXd9iihBCT90CfGeQUEC55Xfs4HUbpTHw7Y"; e_fb_vipaddr="AcTGzPl4unu3Bp13NnGPORUH7YFHBcl7MGFXJMvD1S9qvhtu0970MFBBSgcdYy5_jQWwwK2_LA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=824, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-09-01\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: getaddrinfo ENOTFOUND mail.wincasoft.com
    at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:122:26) {
  errno: -3008,
  code: 'EDNS',
  syscall: 'getaddrinfo',
  hostname: 'mail.wincasoft.com',
  command: 'CONN'
}
Error sending email: Error: getaddrinfo ENOTFOUND mail.wincasoft.com
    at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:122:26) {
  errno: -3008,
  code: 'EDNS',
  syscall: 'getaddrinfo',
  hostname: 'mail.wincasoft.com',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1736:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-09-02T16:00:03.241Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1736:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-09-02\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    httpValidation: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 79077302,
        _onTimeout: [Function: onStreamTimeout],
        _timerArgs: [Array],
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 157217,
        Symbol(triggerId): 157215,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object],
      Symbol(kSetKeepAliveInterval): undefined,
      Symbol(kSetKeepAliveCount): undefined
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 02-Sep-26 09:00:02 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A-kVvMVQyAXWY7u3wPDs6HQ',
      'x-fb-trace-id': 'EwnTavSKdbi',
      'x-fb-rev': '1046623424',
      'x-fb-debug': 'ef/t5o0hBKkKXBlUrufLLdsK2CQR8UwRgdNZpMQQEwgdSWCcR1oJqyFzl6+yRHi4RllDt4hLknM4giLP5XQHkg==',
      date: 'Wed, 02 Sep 2026 16:00:02 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTqLB_Nn_CNYavWDGYoUl4EyWh5uJQ57oYjwosuHGnrp4sp8vIqQYG5ELyhIPeCOzlXvUXHh8S_8ta0tO_7"; e_fb_twtaskhandle="AcQ1JeA3_lwgNqEd3xacB8InhzhBUNWoRWzphhmsUxv3XYW6qpeUt9dO-h2888JhokYOf_I9gvh83uE4UjngLZ0jCmp3i6_z5Gpd_FT7dLjCFQ"; e_upip="AcQWDmPiCD6VHQilBsu9hl8MOC7QAnNdEjE3QbZZ127L9-Jws-GtnJMp5Gs2GC8K18WvlhV7tE8AQewBtU7EuTfqjZvTNrgn4N2DwU4blSo"; e_fb_zone="AcR923YsfNiXwgsLkBZTvIRKHTPhJ3cRmZlgi_cNQdRce_nl9CDRKOp0lFx1s_zT"; e_clientaddr="AcT_NM-V4_JS4C_Wqty8w3islSbY_jm6oFjKOg32pY2vmWs6EJ68WpoF-u9S7iOcqrhwme8Zrpl-uKvk9Io6MWjC_z2wahypQU7epy4OJwTXmeN6"; e_fb_vipaddr="AcTqmC_Bn39NPqgQwFWo5NsOmeboW6CtYpAMt4UP0AotfZNkggVdvB2Ir5XqrAyS-XevMdjxdmODEFTjVKgQmcO09Qcd5u_t6kI", http_request_error; e_proxy="AcQdFEsiIIQGwmTuV0z7uxoMy4enP3GnvpiN1uGe4EoQbXk3P3mtXnuje7bBK_LY8WX7ukmf6k-_dpM"; e_fb_twtaskhandle="AcRjo0t83Lt8TP4WZU6Mq0Mlei1q-njP3xI8QayaovWO1wE2rZR9xqAI_7sF3jB2aoNlg5Az1v4PlkRMoX2OubytSOxpLXUlIU3V"; e_upip="AcTuJEbwRFv3USpNeuofWy9iuRJP72aDkCPZkfSbbLGjS-l6i_6rtZ71t_ZX2Xf8kZ4Mxm4uy4u_U_8jbHLfGfWFqE_2Bn9aQXM"; e_fb_zone="AcSTec15RuXgrzfhTUCSfSIHQi5lAyWxi3JQDClODFVu6vPoBZXdqrE4Juo-Og"; e_clientaddr="AcTH7IJjrpiZNK2w9xlG0lGOIaafvyKLXOCl2bdeAJ1JqoHFyM29dr_kE0qsrkANHuCbdV7strcE40Zm8k4"; e_fb_vipaddr="AcSsWzpBCmirRr9p7d5Kl7rIHx-HHDBMw62k_rn91Gu75oRlbuu7D64h2LmPTmht14V2QTzA_Q"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=9, rtx=0, c=10, mss=1380, tbw=4573, tp=-1, tpl=-1, uplat=277, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-09-02\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      httpValidation: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1736:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-09-02T16:00:03.341Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1736:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-09-02\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    httpValidation: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 58983897,
        _onTimeout: [Function: onStreamTimeout],
        _timerArgs: [Array],
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 119489,
        Symbol(triggerId): 119487,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object],
      Symbol(kSetKeepAliveInterval): undefined,
      Symbol(kSetKeepAliveCount): undefined
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 02-Sep-26 09:00:02 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AeZzlbIdX6MzDBVxPrhquZN',
      'x-fb-trace-id': 'CbpMN3khiGo',
      'x-fb-rev': '1046623424',
      'x-fb-debug': '6ycECXinpf0OW5Rj4vdAVku4QVJeSf+1eLgkK4+iFOV+Dosrj660OtAu2QFTfsusV/kSiUkQQUTOwsHTPN4xjw==',
      date: 'Wed, 02 Sep 2026 16:00:02 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQxVx_aYHAoAsJ0re6Cxmyigbj_bul79R7ZkpRu17voDqOtCWeR9NAJlOf0TQzhcjcdnJNSQGKiG8D7rpoU"; e_fb_twtaskhandle="AcSzWMfkk7CGm8OfsC6MeENx_fyGGqxV413aan813R8WUSW9PvdM-K0GuVfmzD3HXSClbTy95WzP2oBmr0i8IrtxrBY8QWEk2Vh_U-Kk6uCrF84"; e_upip="AcShH-nCQA2e8KVbSvreIK4qtwyK1fsA4Is-PTR1PrH-6Rnxt6D-4ECdayhxnVWh_tT9TrNZqlgV5jaCgDy6YOSrldh-1xhT3YGa6fAouvU"; e_fb_zone="AcSHigzzOK-W_PiU01LUhFxkJDijFEpbNYuF15-uwPR-PU7L2iwLiFKZbkBm6TCd"; e_clientaddr="AcQDfgif9Ydclw70fol8nKJOUJqw65LDkWOqOIr7QhoKaWzfm0IvSsWMgKroTa70qj2Z3ya1esTHOscw1E1cJffySKlN_xj3KUtRXuEbSAgufcobJQ"; e_fb_vipaddr="AcTLQ39rE8lmxm9vbB9bpvCm-7RoW6SCRAM_q9lRsQ0q06c4DRWNaw5tLQPJ1eIrQ6eMVSb9B82YSViKU5JoQbm4qRsmnVynkB0", http_request_error; e_proxy="AcT2kZQYPYejJZHCsxjokREZDqy6Cfosri7iBzyIC_SFX1j4CJg7muE3wpP31CWfd-Wsi263x-13jrs"; e_fb_twtaskhandle="AcQdTU2OlzYJatsMlnm2B2RNlkOhltQvrHTBfKVpFnLlGz9mc2jJgi4vr18A5RD39m9fdqoGV1fjhVD8vXiYly-GWOo_kz6G4NLH"; e_upip="AcTtl7e_qLkU3Uz42UYjt5BLk_aPCPj8OjmDwuJ76HyiyUlIOpAs-KcxOn7gbOGOBsE4JaTr33VSUvfQUleTAFiYCWZrSmFVP9o"; e_fb_zone="AcRdPp8YY3m210GMUbXdE13Gj0VmzecvRTManqK6A0f_bDHQ7bMq0XoaM2Jpjg"; e_clientaddr="AcSoqoAvXPvdTsUqt8NFvvmQJjW6Qavf98kNG05ikQBY8LW_9glrfSnNr-ipx5jfkAQ9BdFNaEF8cjZ05Es"; e_fb_vipaddr="AcTRdyPA-rNZum0fMGJryYCSy89ohXYaH4TFt2nVu970-pqGmH2_PQWx6fGgMQReuVRipR0m1g"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=6, rtx=0, c=10, mss=1380, tbw=4573, tp=-1, tpl=-1, uplat=716, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-09-02\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      httpValidation: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: getaddrinfo ENOTFOUND mail.wincasoft.com
    at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:122:26) {
  errno: -3008,
  code: 'EDNS',
  syscall: 'getaddrinfo',
  hostname: 'mail.wincasoft.com',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1736:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-09-03T16:00:06.387Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1736:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-09-03\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    httpValidation: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 145388497,
        _onTimeout: [Function: onStreamTimeout],
        _timerArgs: [Array],
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 292336,
        Symbol(triggerId): 292334,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object],
      Symbol(kSetKeepAliveInterval): undefined,
      Symbol(kSetKeepAliveCount): undefined
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 03-Sep-26 09:00:06 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AtB7iEQ23LJgIxMdwsWMa43',
      'x-fb-trace-id': 'DMX4yyEVkRh',
      'x-fb-rev': '1046721733',
      'x-fb-debug': '0PL2tdpwwFsmcr/mfqu5dj+P+ubaS1CMfuqvhhffMuqIM1dfjnJLO+SiiZdfguSTfAkbd88vdIQmlQaXG3uZ8Q==',
      date: 'Thu, 03 Sep 2026 16:00:06 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQKbeVOEcdXwDH1l_IUdZQrVtiaMl86BDZJTx1pKBhvXKjZV18aJwJLdzoJgugrpYQBwAehq8JLV3-m50I"; e_fb_twtaskhandle="AcSS6O5YiCPLixLaZnHpDII6lQiiFTiz9FwpTpmTn4O6cNeQ_wC-OhyKT8wKCAd5GZIU1Oh15xXdqBGIP1KDVB-BEEZkCS3t0Z7hYYn8HKdvfvk"; e_upip="AcSAxqMtW3RRrCaMW36dru-uykulIlZogixCAica6yy8AN3K9QObHxQwC5TXyC5_m55rVBQJQ94v9RPPVeP6bUrP7YAKkO_wHXaCcawij1A"; e_fb_zone="AcRXrTl6vtptk2qRqf6uInwBhYQGIvua95s-RpGYUwuo9DNz6FZ5L9g3e28-RrGy"; e_clientaddr="AcTluwGxOegSy0hZTGZ2KeLnBEVCN0JPNpvLy8arJJTfrj2iLm1KbUXgnlGvFvAjrQtW_NurCdFixNl_Nb84o2mM6gitgPPBGD8qW_6PNtiJ6OOjng"; e_fb_vipaddr="AcTKN1LP-SnWpCnjSQOgTDUL9DAu0gOxYE3sGRnqrkBsa2KiV-9C48ials59KsevfCvL6_Dmn1lVKhhNDQgk68Rppn_s9TL_R2M", http_request_error; e_proxy="AcRA9UcQ5Zb6EOEGIZQNC71koNZp4MetWMjHoVc59EsUPA3VIoDYc-gKwZC3DvUwiBidy3Sw9bRUvSc"; e_fb_twtaskhandle="AcR7IuQSt3o5CKLVSbAGVmDmpX8ZA1u0lxGHY9HzrT6TXsWhX31j7A9l2PZFhKNjgfps-0yg1i4VpdgrzWua22A-efUb7707-gTr"; e_upip="AcShotbItR2VYYw6-hKbRP8r2vsau9gORukXPoEOGiggm4k2lgXXhZgpuFgCJn3JeN2NyXFMOgZpLbSwJtzAk6Kys92qQlO3a8o"; e_fb_zone="AcTeRxlx7sqt-rpAd2zPF1oKLciL49Itl3WafDeBmBRAfDf1GyJhYKCzDr0I1w"; e_clientaddr="AcQ8NGgyfeyiddMHqNEHM74qvvbzyiDy0_TMYO5_d_jJydv_2fdV4ENb2Ls8RwIoXd9fNMEqJRftdJ7BX7E"; e_fb_vipaddr="AcRyjJJDUVM8ZbOhq56BaJBTJHFS2YqH3c-HXFkIHck9DZgiI3sjrMki8_DR0Qgf8XxSk69Lxw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=744, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-09-03\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      httpValidation: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: getaddrinfo ENOTFOUND mail.wincasoft.com
    at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:122:26) {
  errno: -3008,
  code: 'EDNS',
  syscall: 'getaddrinfo',
  hostname: 'mail.wincasoft.com',
  command: 'CONN'
}
Error sending email: Error: getaddrinfo ENOTFOUND mail.wincasoft.com
    at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:122:26) {
  errno: -3008,
  code: 'EDNS',
  syscall: 'getaddrinfo',
  hostname: 'mail.wincasoft.com',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1736:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-09-04T16:00:06.795Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1736:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-09-04\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    httpValidation: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 53383296,
        _onTimeout: [Function: onStreamTimeout],
        _timerArgs: [Array],
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 106777,
        Symbol(triggerId): 106775,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object],
      Symbol(kSetKeepAliveInterval): undefined,
      Symbol(kSetKeepAliveCount): undefined
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Friday, 04-Sep-26 09:00:07 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AzPIaIJ37fGr5MiKRYoTP30',
      'x-fb-trace-id': 'Ahl4+VEewFH',
      'x-fb-rev': '1046829849',
      'x-fb-debug': 'MQ0vYVUFw8JTpuXTQDckkllTwYa7GW31cMfusg82et/0jL51kw+VrBWr1yk/Oa16DjkFQ5iQA+0eS+MGNhoY1A==',
      date: 'Fri, 04 Sep 2026 16:00:07 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQ5mFz_OMwRl6GHqWzilGWuQage25X2OsxpATU4JE71M7m4YCXoQc07QbxZJ3OSoEkp0RcyFXEtXaBJ3T9o"; e_fb_twtaskhandle="AcQpAnhEtchv2KeqBnY80zVMDW9k4Ms59NQtABwLoVigP9Hr63oGwy3CiEUR1xJY_JKVtrKCw5YQFBAtMLsrzU4DzNFhgx-1KALm3wBsv3XsRGo"; e_upip="AcRWznoNAk0oOLC4GOuoeorrR_e7ChNwxOvpJLtj1LqQywG-cDpI4gxXcsh_zn3_Gw4-r8Kc4bfhcOOX_d_IOAxwAfD_6TFoM-jzJUCaTns"; e_fb_zone="AcQLEPLeOSgRB5ZqcCdWkcRBuxL4iHzvYNmcOQp51EifFHRTvqN9nhFwjtWN5JMj"; e_clientaddr="AcRBaR_TZfIx23sJG93hQdOGQVMSZlopFw5gPc_2ghTf4jqwmsSIwSBu2Kag2W-_Uf2hhVZYQfwUzU94mk7ikHxoGBxRAZjTqG3KbCboF065XPN3NA"; e_fb_vipaddr="AcQTCUW9fQygmhf15z7Y17G-hkjNYPC_tYMG25K-SP4DXlEiNO09giiM4SUfLaxvWS67XJkYGekTPO4skPagwyT3-FpWBysAQaE", http_request_error; e_proxy="AcTIMi2lYSoFTC6H5R-8fT9ntYg5qpOB1CjidZlS_BOZMPXRDz5R4PrTvI0GcXOfayo7auKM2iutfYc"; e_fb_twtaskhandle="AcRaiWvXZqXBPFJhC7bCRZTuHKOqnLs0ikkapmtL7DC53mZyGyGoMLpYRRHcmxsv_wJ_Fj3t-UAIE7uVaMCNxBgFfppIQzWLWjVW"; e_upip="AcTSlQrpP0vnTga3-HQMOx2riZwwxsKG73Vxc1n2xQRlTNAxGdWFTeB1gD-x-inVqq24ICL78H_BtLd_fCq7OxejI3vZa51S_Gc"; e_fb_zone="AcQ0m53u9Kmov3SEbWIpcGRQ0QOQ2-JPwykpfln9oY2BbgI0uIbQOMJiNiWSTw"; e_clientaddr="AcROvJHs7j725R9KFaTJMpJvFnoQDFKQZeVXtergFyl5u7-Jt7CTZzNkEPfry3_qmCBNOx8Ux75U2VwLbZY"; e_fb_vipaddr="AcQYhuh-OgPGWE2nqM91GWC3t-PPeLoTzuEbyy6PC3V_YJnPD66srhdMHwUPMia-_EKqbFzcBw"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=6, rtx=0, c=10, mss=1380, tbw=4573, tp=-1, tpl=-1, uplat=846, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-09-04\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      httpValidation: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: getaddrinfo ENOTFOUND mail.wincasoft.com
    at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:122:26) {
  errno: -3008,
  code: 'EDNS',
  syscall: 'getaddrinfo',
  hostname: 'mail.wincasoft.com',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1736:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-09-05T16:00:01.726Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1736:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-09-05\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    httpValidation: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 7123555,
        _onTimeout: [Function: onStreamTimeout],
        _timerArgs: [Array],
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 15623,
        Symbol(triggerId): 15621,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object],
      Symbol(kSetKeepAliveInterval): undefined,
      Symbol(kSetKeepAliveCount): undefined
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Saturday, 05-Sep-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A4FjfY_0-CfIg7dmeCF2Ibi',
      'x-fb-trace-id': 'AymHMjer8ni',
      'x-fb-rev': '1046900546',
      'x-fb-debug': 'rj8bbht0OhHs54gOEOaeMB5TUC/e6tHfblWNK8PESc31/6oCB79JLG5raqIfE1BX9OveGU4ua3fO3ktVTk5OyQ==',
      date: 'Sat, 05 Sep 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcQYeYQ2iXBEFhgQ-5hkfSDQc1wcFStvxYmg4bqKF_t_XNtek94O-Je5EYfLgly4_d-wwHwymEgIJpbQR7Mn"; e_fb_twtaskhandle="AcROtv4QWCYG90l91uzqJ6fHvqt_N4_8yivjV_ant1iAJBgIIuc2L8DtU8R6HrpUTpaQw0RYpptRZG34U2LCbKkYRHKjJafRIhz5M7NjjTspQ2U"; e_upip="AcQnyn31bKGM4NckUbzyjFo70pMSA7lQlYpFccZZFPqCSfZskDKj0-xgcLssJjqADMjKWru7vTBgzaQsi_yoIG-rLEuSxM1FEDY0Fb8hZJM"; e_fb_zone="AcTTbSTS2f_pSSc9gsCHX2CPgLXQwti-M8X3O69XCQivb4P3UKL0FUqU2BMhz3il"; e_clientaddr="AcRuQ1beerGpJw5lscxnnPNXDyDyG6Lq4kQV--EbExSqfFhOl29exOSUZKr76N4x9vb9BycZ-teCWwlb9_ERSvP0xVwLNYfBEZ3qsnXVKiGzwyqkqA"; e_fb_vipaddr="AcT3JnEreN4K5219j9S8Y3flsd8ifQ9TAOhoC_TRgUT3lZa0-DbjhP9stmj9bKwKXWnC6Vio0p8WWgXARle6racfm-47n55L_5g", http_request_error; e_proxy="AcQqvIpAaV0kjF-2B-t6NEVrDyA_S3V4E2fQFL04hNf9M2lFML1sg_iu6ukOfbNh3tTp6YRydrJYE4k"; e_fb_twtaskhandle="AcSPa1xAZB6D-aYIG_jBhjLcHp5eboNSLmKSvsLhpoVyJvAqnKNOkIVJULqUzJbwx6RGWj5lVSzKdgztadGRs-R442RjTlNAimQQ"; e_upip="AcSuHyv_niDCwwjheppWolAhpiP9M4LMfO0DUCl3L-EZhjTCIIo-QooqpQz6znmLhG1hiuDKXNhS6tLcjaVA7Q7QuVibeYJ3gKo"; e_fb_zone="AcSwwI1WDHb5Qp6JxS_WPcpOTZ9Ql25xUt7GeKecJqZB7DHJStfTaL9vR7jzOg"; e_clientaddr="AcQ7Tl6o51AJ2rMfkc2O1Qd16DtIFRLCPET87zmirLs2B1t6_Hn1O2i41E7PW24GLIBG2frBvhVaBxod5HI"; e_fb_vipaddr="AcTgSJnUnm0DKayVuZ1hdk5i1qv48anNhgDYvtb2jplxACP2PB7cvz3bnlEwRdidX2fgcZkOhA"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=4573, tp=-1, tpl=-1, uplat=795, ullat=1',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-09-05\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      httpValidation: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: getaddrinfo ENOTFOUND mail.wincasoft.com
    at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:122:26) {
  errno: -3008,
  code: 'EDNS',
  syscall: 'getaddrinfo',
  hostname: 'mail.wincasoft.com',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1736:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-09-06T16:00:01.092Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1736:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-09-06\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    httpValidation: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 93524125,
        _onTimeout: [Function: onStreamTimeout],
        _timerArgs: [Array],
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 189288,
        Symbol(triggerId): 189286,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object],
      Symbol(kSetKeepAliveInterval): undefined,
      Symbol(kSetKeepAliveCount): undefined
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Sunday, 06-Sep-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A5rho37Fd914oN1RofCVYlK',
      'x-fb-trace-id': 'AuyhIs6tL3/',
      'x-fb-rev': '1046920341',
      'x-fb-debug': 'ptonYUBH9RhYHaaJAO3Z2ZwUUemZohXMKgG8CXP/mKrww6+gRLjv+j4TAxrwCzwKU+RDZnl2COB30o7vHBjXUA==',
      date: 'Sun, 06 Sep 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcRUNMdRNVKcqB49HidUjTN4r5SOMWZXcOtg2xcueWRLHzJ6xmU05vUAcnaSpzAsPb4PCzJmLkt_me8pebDB"; e_fb_twtaskhandle="AcQhWua_TR61AtcMbfWFP2AkCh54KwN-dSjtuLTIk95M4usgNX_6CoxwJLz4KnZUXQmoX3gs1yV3Wc1baADXBIVVdiI98tN3izqprGtZn9wLlwk"; e_upip="AcQSLTK-JJ_uwrD26kziu1M1vOX-B4JnyuoJrRWCc9XYpPC4Hwr_t-D9KjrAIijLuoRbHizZqFmy9dh5dw1UVhnKFboennjQCAtvxNRF3mc"; e_fb_zone="AcR0QY66WzNtk7BPDCz-mkNrVuZgBLDiTI6FP9q766kYfd15yhIwNfXWUSFnRCNB"; e_clientaddr="AcSj_Rl-djUH2g-oOOgjp9LJ4ydW7WQduyZdQCv8d8jyzZV-yIEWqhHc0z5VV0Kb7H3kJWQrUIuX2z_jlMH9n7TC_BbgS-0acmgxdtnceoo6hQ08Bg"; e_fb_vipaddr="AcSE4N0HfXsXYBNDGzcU0aLKm6pEiV7hdjSnc-PkK_ZlDa2gDhHUn_kcFsSqcmeeB0oORQUN4Pn8xDHxnalZRRMY1nSzyZ7zaU0", http_request_error; e_proxy="AcSH-qOe0lhNXJ_IgA3vtTQDr3uslbNA-6WD0xbgKUs1uZLbR87rlugWvDd7nBT9jBikK71OPghUZyU"; e_fb_twtaskhandle="AcRx6nrxGRlHABINabRgF-yuXIkVfWrFxDHr0D4ZsM-AxiIErVMDGLS283K0_HRYI9HiAPr5FZDCsICBls9mqvSOREOpIL7XBDg2"; e_upip="AcSSua_y2ruIqXGw0uDig7sBmzOY3plxjTtgTksHivp77XbI8LupW20opejd13lyRcoFHjcZ4I4O5xh4B2axQsKZctlbvAgBDPI"; e_fb_zone="AcQtBnk2L0lFYwT93t3O9O-OZ-zF-JEtW4pX6mBpzmbb3Lg7Oz0DmhscMT4ZMA"; e_clientaddr="AcT079riETqvsqSsudDFLOMRqXg7CpVV-krdyznHwpoZx6xWcE7xYI-JBZn0zW-0a16Lv1XzUH-5_26Oju0"; e_fb_vipaddr="AcQSLesg6eDYqTvcAQoa_WagPY-KArL0PMFrJ4JT4MdRbEFWw8nX1iKIhafy-ZzygELytCGMxQ"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=11, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=259, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-09-06\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      httpValidation: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: getaddrinfo ENOTFOUND mail.wincasoft.com
    at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:122:26) {
  errno: -3008,
  code: 'EDNS',
  syscall: 'getaddrinfo',
  hostname: 'mail.wincasoft.com',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1736:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-09-07T16:00:01.314Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1736:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-09-07\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    httpValidation: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 179925583,
        _onTimeout: [Function: onStreamTimeout],
        _timerArgs: [Array],
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 366264,
        Symbol(triggerId): 366262,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object],
      Symbol(kSetKeepAliveInterval): undefined,
      Symbol(kSetKeepAliveCount): undefined
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Monday, 07-Sep-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A9PV5r8NXNGx377j4RB2ZOF',
      'x-fb-trace-id': 'FYAlTFRoFJa',
      'x-fb-rev': '1046945112',
      'x-fb-debug': 'QG26VXGqv0HoJ34umbpaFrebC4q8jtCqp9cvrRs6p9LkyAzQVlOggXgyRF94b1q5y5w0a6yP1cWenQeWk+4yAQ==',
      date: 'Mon, 07 Sep 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcTcEVQr9ZeZ0bULlhRaidwEa5s-2TmEP7bzL8BnQh2Tv7wgvkHP-Jbh5p_dqT1cu8DpiM-oaMB_Tf191T4j"; e_fb_twtaskhandle="AcSjn57kZbh3NDS3Txd3XzYsPWMrvojhFLZ-iac2qJW3LkFEZA1VlupZDraya0l2hpr3Fv3Xya69HNwDI8Bw17ipidEZDRBzZor4R7Ymr7hbMiY"; e_upip="AcTWoPxEVrC01oidNCGXgvwUNaePNej8cxLFaBQib__SFPPWbXP3Y2D0dv040Zu12tjOxKssa1f9GBZh_-2pvMlAb5YGEu-1UcnNHYPc7CE"; e_fb_zone="AcSsvb6j1K-Csl96upNkiHvaO97EhcZj0piUkHCcef_3MnddcIWms11SY5DsntaG"; e_clientaddr="AcS3vwBTAWADbZZOqGDRtwmsyzYggyhVLLI7Rf9MLdoRTdVQHLwCxisZvqyPq3AaEPVuhkEtDle73ex6_0zFe_0EApNUegC-Gb3R564KQop44aUa"; e_fb_vipaddr="AcTOsYvaEAx4Ub0gRx3B9tCAKYZPGzSnQRLiG3q8gEq5En4-BikxbLY4Jk4UiMBU8b9Gg4BeR5Uwncf9ayZySps5_GX5zhGbim0", http_request_error; e_proxy="AcSKec0csSbXqAfIWPxt9Qa7nahF0-sJAg-IEjH1zCFYnQob7oOSqCJc-IQxbpCpi3IKqE1y9qsOPng"; e_fb_twtaskhandle="AcTwiKgMo54RtJab-3FhqpwsatokEgyHUehCmrH_aUSPb1nbf4ZMSwtrkwjA7MckWdxHVFjeglsjYyvnLeCb4zol8-ZP0VavMP3YZg"; e_upip="AcTr6W7sqqFms2Yo6YUT1NJIhqXhlynlCVOghH1JLgCgM-CEN83ThA81muWFfvlNzUvHFOWnjnBPgGJ99c8PjoSRF_8_3Qiom10"; e_fb_zone="AcTMRgRGLb5kZvOOAN8FtUwAIMa8WveQtHJJf__1zXOPB2y-pZyutkWMHU5iQQ"; e_clientaddr="AcT78YgKD5KPOXtMSPpq-AZTl_g8HmdANqwMkqKpCWr7NGFUEu5LiKWXgPoRGhdqlS46ZBS8dUW8H842zWQ"; e_fb_vipaddr="AcQaeG2b9rX0KdoIKCxqKGXLNg9GZLbbvlzbu9RtX4mGFeSeY1qyF2OGPO2HCfS382pujYx5bg"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=12, rtx=0, c=10, mss=1380, tbw=1479, tp=-1, tpl=-1, uplat=773, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '206'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-09-07\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      httpValidation: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: getaddrinfo ENOTFOUND mail.wincasoft.com
    at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:122:26) {
  errno: -3008,
  code: 'EDNS',
  syscall: 'getaddrinfo',
  hostname: 'mail.wincasoft.com',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1736:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-09-08T16:00:01.758Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1736:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-09-08\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    httpValidation: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 266327513,
        _onTimeout: [Function: onStreamTimeout],
        _timerArgs: [Array],
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 546836,
        Symbol(triggerId): 546834,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object],
      Symbol(kSetKeepAliveInterval): undefined,
      Symbol(kSetKeepAliveCount): undefined
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Tuesday, 08-Sep-26 09:00:01 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'A0DJdWCVl8fCdk6vIXmMzOY',
      'x-fb-trace-id': 'Dtq5Kan3yzg',
      'x-fb-rev': '1046977494',
      'x-fb-debug': 'ARVrYRyQErMlR63xwVI7++AsaZ7Z07dNqPkvI6oUsHbLyCRWAsLco9neAvyF1cQPTQ/JZAt1PWo5rNRxLLBZKA==',
      date: 'Tue, 08 Sep 2026 16:00:01 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcS4Fp6DiYsoIL1dOQYmo4a_PpbUb1OXxuF8ZCdHdipRL7evrZH1iNvuNtYCFR2j-WYlMtm2yY8zr0VCT6O2"; e_fb_twtaskhandle="AcRWbiVbghTbizHyob5ytuAXULUWqK6Vkq-B_jpi4l8Maz9nXF2koTz26TespkZZnYb6bxgeqL-KGP3Cq7-0BNrYnIhtpQy-ubopRStboYChHr8"; e_upip="AcSOpC0q9bbgZPmgWB8XrI3JiK_iN6mmXNzQy_bW-2xxhhkBzuZwvCuILzHhzIsR7FG9X0DJG33o24K6FZtq6Wujh3QXw6OoiDHUnLrZqzk"; e_fb_zone="AcR0kIv2K09VTIebdxBj-_jh2oJKlBTkgFPAs20Oevl57rDfo9MPeqjJ0eHlIEcG"; e_clientaddr="AcTtPqvWpYgUzjKNATdPjT-c9DUP2qmuqFmuxaO8i5GhjGeW5rS8odxBsgzVIZIHo1jvbEz49tILlP4RFUM4Swk0rFiPP9cQv1tpy8zbHK5YOA6AeQ"; e_fb_vipaddr="AcRlkaR1M-UAgb6xT8pCL62K2gI-69yHRslPrWY7BOQsIReY2cMF5d5SqMDFtYJSISA1pFcjDULhyqfvf8esSg24ynJyzL9EwbA", http_request_error; e_proxy="AcSveZsi5KU7kaQ9SnlVkRcZspFq0GGihmJ1AoJtfVYvaQxq61qhmR9kr3HODjxtiAurj-We13t_Yt4"; e_fb_twtaskhandle="AcRHYm5zAmaWYuuKLqWdo4AqwbFsUS7VtPNrhRCoQwr4ha8evJpx3iJ9b3IUd2WvBNkribKZEhtpwLkvsbWbSBa-0xOGZe7YiAU"; e_upip="AcRAmzKD2_OKR18QutGENtPMWOYD2jXuR60XCOPe_uzoCQYy522wwgUbEy8WvKrivVfetdKHAVyUAEl6p3ghYpqixKofaQ6kFlc"; e_fb_zone="AcT8vjWc8eG2-C16wzaN0Dz9vKLdabc0DGS7hflgbHMdC_IidpbZNHek4w11UQ"; e_clientaddr="AcSuVEi_S20Mf1Tc9bxs8bswS3FcldQWN_xWg2_aqB1RviIAVM2Zqwhb8leO2Z9TwFTtcAY3f_2BP2XxmoQ"; e_fb_vipaddr="AcSl5Cf5x52FcOv3GBSHJLe0TUh9KBFGMtPx7dAWTg4xNcvou4mDl3yjJccqPy6ZoUTM0U7VgS8"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=38, rtx=0, c=10, mss=1380, tbw=4536, tp=-1, tpl=-1, uplat=693, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '207'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-09-08\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      httpValidation: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: getaddrinfo ENOTFOUND mail.wincasoft.com
    at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:122:26) {
  errno: -3008,
  code: 'EDNS',
  syscall: 'getaddrinfo',
  hostname: 'mail.wincasoft.com',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1736:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-09-09T16:00:01.178Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1736:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-09-09\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    httpValidation: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 352727770,
        _onTimeout: [Function: onStreamTimeout],
        _timerArgs: [Array],
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 720091,
        Symbol(triggerId): 720089,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object],
      Symbol(kSetKeepAliveInterval): undefined,
      Symbol(kSetKeepAliveCount): undefined
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Wednesday, 09-Sep-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AMF4xd-ENGlQWxi6c9Wn-y_',
      'x-fb-trace-id': 'BJacBT37rVc',
      'x-fb-rev': '1047086005',
      'x-fb-debug': 'dJeR3Ddjkm/ZIoVVY8jIxoTRr5lZIeU2Az2LL9a+4yH/DO68DoRQwgt+AUr2T9zUcJ1ml09fOBmQ+AlFIKmp5A==',
      date: 'Wed, 09 Sep 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcR_j7rnUS_Dr0mMpwn3KKcnlJSDhlWFU4k544X9Fd4v79o6VP-tRR6xN7XC8EvtO3D3Or72vQFH73HWhlAA"; e_fb_twtaskhandle="AcQtHopPVm4RapxVOJIkEONP8bvRIBVbKJbe9zVEieLQGNdiLMQZjKW7vgBIO8Fe5w-4OXR4WWhlILnBmWL_FE-FF39GSuRHwq9GyBDDESfUeaQ"; e_upip="AcQblmDMrl4KlmDvsvrFl2ly0u8gPRFxU_uYvkNMoyno5hWGhtod36tyDfqDbLOua90xfJ81Q6YY7dOO4Bkjlcd977IiKLvjFZMUbprcNks"; e_fb_zone="AcQe5DTVhMu2UTIxcbTea9eal9khuz0AfF1RF7MX7Lm4ectrlSOLt2c8wOxr2w7z"; e_clientaddr="AcS-sP4w4vaahkrMVPJ2uj_4mQnR7SAXyg9JiCKbdf2VX_UdPnuccPe3YTMLcXgf-nHcw8sUmvZmtsHzSusrb090JA0dOswZRusPGc1BPd2TXgfRQg"; e_fb_vipaddr="AcRLj6c51nEfx4hoRPeagBTEh1KPHQSPR2BNJhXqL5c2ZoXFAoKPYqmdgE-yiLbbkL5JUpfzn2EJdpBkRloX6iuRwydxexW6XI0", http_request_error; e_proxy="AcRMZogGFrq_8eBew14TK6AsAr_Qi_6MG4kCSXgbui7ChmprTDzy0W9I_m_PlXv6isYGfmrMNjcv_gc"; e_fb_twtaskhandle="AcQEj_wMCfeTjIebXy2_CcWa3CQOaDRhrwA2QXS2djCan7XvEZum77Cj9eb2fY3QQfofRoWsY1VOqsGxm4Kpe2-_Omvhm0oq7v28"; e_upip="AcR639tjTwbAfrl2gpCVcNKLCwocwdJeq9CqO_Qnm-Nt7CmYRu2sLBrkJ7zilxrAfiJJa1__uhnzgws_lda0YApyOBExtiTiw-w"; e_fb_zone="AcSi93Jc3gx_mTGkbUQBpe6eGIqfOkgP-4L_FPBSjXyAamMveMsZW160Hslxhw"; e_clientaddr="AcTTqL6X_c2CqdidXzhkfZZa2CT63B3kQ3Fcg-gu5ixplpPsTf96-ISwMaJqdAy_dwOYd3vTNW0J7tZoJ_I"; e_fb_vipaddr="AcT4-adOvecW9lvuwXy33tlf-8kBI6QPPXj-myPpHzUjCLKvnHoKVeznXwvgkFGxnDGiC81C84I"',
      'x-fb-connection-quality': 'EXCELLENT; q=0.9, rtt=33, rtx=0, c=10, mss=1380, tbw=1468, tp=-1, tpl=-1, uplat=759, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '209'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-09-09\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      httpValidation: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
Error sending email: Error: getaddrinfo ENOTFOUND mail.wincasoft.com
    at GetAddrInfoReqWrap.onlookupall [as oncomplete] (node:dns:122:26) {
  errno: -3008,
  code: 'EDNS',
  syscall: 'getaddrinfo',
  hostname: 'mail.wincasoft.com',
  command: 'CONN'
}
Full Error Details: {
  message: 'Request failed with status code 401',
  stack: 'AxiosError: Request failed with status code 401\n' +
    '    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)\n' +
    '    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)\n' +
    '    at IncomingMessage.emit (node:events:521:24)\n' +
    '    at endReadableNT (node:internal/streams/readable:1736:12)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)\n' +
    '    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)\n' +
    '    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)\n' +
    '    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)\n' +
    '    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7)',
  time: '2026-09-10T16:00:01.032Z'
}
Error in scheduled job: AxiosError: Request failed with status code 401
    at settle (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:1956:12)
    at IncomingMessage.handleStreamEnd (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:3279:11)
    at IncomingMessage.emit (node:events:521:24)
    at endReadableNT (node:internal/streams/readable:1736:12)
    at process.processTicksAndRejections (node:internal/process/task_queues:90:21)
    at Axios.request (/home/deshitbd/server-erp.deshit-bd.com/node_modules/axios/dist/node/axios.cjs:4339:41)
    at process.processTicksAndRejections (node:internal/process/task_queues:104:5)
    at async sendSummaryMessage (/home/deshitbd/server-erp.deshit-bd.com/src/services/whatsappService.js:134:22)
    at async cron.schedule.scheduled [as _execution] (/home/deshitbd/server-erp.deshit-bd.com/src/jobs/sendSummaryJob.js:37:7) {
  isAxiosError: true,
  code: 'ERR_BAD_REQUEST',
  config: {
    transitional: {
      silentJSONParsing: true,
      forcedJSONParsing: true,
      clarifyTimeoutError: false,
      legacyInterceptorReqResOrdering: true
    },
    adapter: [ 'xhr', 'http', 'fetch' ],
    transformRequest: [ [Function: transformRequest] ],
    transformResponse: [ [Function: transformResponse] ],
    timeout: 0,
    xsrfCookieName: 'XSRF-TOKEN',
    xsrfHeaderName: 'X-XSRF-TOKEN',
    maxContentLength: -1,
    maxBodyLength: -1,
    env: { FormData: [Function], Blob: [class Blob] },
    validateStatus: [Function: validateStatus],
    headers: Object [AxiosHeaders] {
      Accept: 'application/json, text/plain, */*',
      'Content-Type': 'application/json',
      Authorization: 'Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu',
      'User-Agent': 'axios/1.15.0',
      'Content-Length': '257',
      'Accept-Encoding': 'gzip, compress, deflate, br'
    },
    url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
    method: 'post',
    data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-09-10\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
    allowAbsoluteUrls: true
  },
  request: <ref *1> ClientRequest {
    _events: [Object: null prototype] {
      abort: [Function (anonymous)],
      aborted: [Function (anonymous)],
      connect: [Function (anonymous)],
      error: [Function (anonymous)],
      socket: [Function (anonymous)],
      timeout: [Function (anonymous)],
      finish: [Function: requestOnFinish]
    },
    _eventsCount: 7,
    _maxListeners: undefined,
    outputData: [],
    outputSize: 0,
    writable: true,
    destroyed: true,
    _last: false,
    chunkedEncoding: false,
    shouldKeepAlive: true,
    maxRequestsOnConnectionReached: false,
    _defaultKeepAlive: true,
    useChunkedEncodingByDefault: true,
    sendDate: false,
    _removedConnection: false,
    _removedContLen: false,
    _removedTE: false,
    strictContentLength: false,
    _contentLength: 257,
    _hasBody: true,
    _trailer: '',
    finished: true,
    _headerSent: true,
    _closed: true,
    _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
      'Accept: application/json, text/plain, */*\r\n' +
      'Content-Type: application/json\r\n' +
      'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
      'User-Agent: axios/1.15.0\r\n' +
      'Content-Length: 257\r\n' +
      'Accept-Encoding: gzip, compress, deflate, br\r\n' +
      'Host: graph.facebook.com\r\n' +
      'Connection: keep-alive\r\n' +
      '\r\n',
    _keepAliveTimeout: 0,
    _onPendingData: [Function: nop],
    agent: Agent {
      _events: [Object: null prototype],
      _eventsCount: 2,
      _maxListeners: undefined,
      options: [Object: null prototype],
      defaultPort: 443,
      protocol: 'https:',
      requests: [Object: null prototype] {},
      sockets: [Object: null prototype] {},
      freeSockets: [Object: null prototype],
      keepAliveMsecs: 1000,
      keepAlive: true,
      maxSockets: Infinity,
      maxFreeSockets: 256,
      scheduling: 'lifo',
      maxTotalSockets: Infinity,
      totalSocketCount: 1,
      agentKeepAliveTimeoutBuffer: 1000,
      maxCachedSessions: 100,
      _sessionCache: [Object],
      Symbol(shapeMode): false,
      Symbol(kCapture): false
    },
    socketPath: undefined,
    method: 'POST',
    maxHeaderSize: undefined,
    insecureHTTPParser: undefined,
    httpValidation: undefined,
    joinDuplicateHeaders: undefined,
    _ended: true,
    res: IncomingMessage {
      _events: [Object],
      _readableState: [ReadableState],
      _maxListeners: undefined,
      socket: null,
      httpVersionMajor: 1,
      httpVersionMinor: 1,
      httpVersion: '1.1',
      complete: true,
      rawHeaders: [Array],
      rawTrailers: [],
      joinDuplicateHeaders: undefined,
      aborted: false,
      upgrade: false,
      url: '',
      method: null,
      statusCode: 401,
      statusMessage: 'Unauthorized',
      client: [TLSSocket],
      _consuming: false,
      _dumped: false,
      req: [Circular *1],
      _eventsCount: 4,
      responseUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      redirects: [],
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kHeaders): [Object],
      Symbol(kHeadersCount): 40,
      Symbol(kTrailers): null,
      Symbol(kTrailersCount): 0,
      Symbol(kAbortController): null
    },
    aborted: false,
    timeoutCb: null,
    upgradeOrConnect: false,
    parser: null,
    maxHeadersCount: null,
    reusedSocket: false,
    host: 'graph.facebook.com',
    protocol: 'https:',
    _redirectable: Writable {
      _events: [Object],
      _writableState: [WritableState],
      _maxListeners: undefined,
      _options: [Object],
      _ended: true,
      _ending: true,
      _redirectCount: 0,
      _redirects: [],
      _requestBodyLength: 257,
      _requestBodyBuffers: [],
      _eventsCount: 3,
      _onNativeResponse: [Function (anonymous)],
      _currentRequest: [Circular *1],
      _currentUrl: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      _timeout: null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false
    },
    Symbol(shapeMode): false,
    Symbol(kCapture): false,
    Symbol(kBytesWritten): 0,
    Symbol(kNeedDrain): false,
    Symbol(corked): 0,
    Symbol(kChunkedBuffer): [],
    Symbol(kChunkedLength): 0,
    Symbol(kSocket): TLSSocket {
      _tlsOptions: [Object],
      _secureEstablished: true,
      _securePending: false,
      _newSessionPending: false,
      _controlReleased: true,
      secureConnecting: false,
      _SNICallback: null,
      servername: 'graph.facebook.com',
      alpnProtocol: false,
      authorized: true,
      authorizationError: null,
      encrypted: true,
      _events: [Object: null prototype],
      _eventsCount: 9,
      connecting: false,
      _hadError: false,
      _parent: null,
      _host: 'graph.facebook.com',
      _closeAfterHandlingError: false,
      _readableState: [ReadableState],
      _writableState: [WritableState],
      allowHalfOpen: false,
      _maxListeners: undefined,
      _sockname: null,
      _pendingData: null,
      _pendingEncoding: '',
      server: undefined,
      _server: null,
      ssl: [TLSWrap],
      _requestCert: true,
      _rejectUnauthorized: true,
      timeout: 5000,
      _httpMessage: null,
      parser: null,
      autoSelectFamilyAttemptedAddresses: [Array],
      Symbol(alpncallback): null,
      Symbol(res): [TLSWrap],
      Symbol(verified): true,
      Symbol(pendingSession): null,
      Symbol(async_id_symbol): -1,
      Symbol(kHandle): [TLSWrap],
      Symbol(lastWriteQueueSize): 0,
      Symbol(timeout): Timeout {
        _idleTimeout: 5000,
        _idlePrev: [TimersList],
        _idleNext: [TimersList],
        _idleStart: 439129247,
        _onTimeout: [Function: onStreamTimeout],
        _timerArgs: [Array],
        _repeat: null,
        _destroyed: false,
        Symbol(refed): false,
        Symbol(kHasPrimitive): false,
        Symbol(asyncId): 893352,
        Symbol(triggerId): 893350,
        Symbol(kAsyncContextFrame): undefined
      },
      Symbol(kBuffer): null,
      Symbol(kBufferCb): null,
      Symbol(kBufferGen): null,
      Symbol(shapeMode): true,
      Symbol(kCapture): false,
      Symbol(kSetNoDelay): true,
      Symbol(kSetKeepAlive): true,
      Symbol(kSetKeepAliveInitialDelay): 1,
      Symbol(kSetTOS): undefined,
      Symbol(kBytesRead): 0,
      Symbol(kBytesWritten): 0,
      Symbol(connect-options): [Object],
      Symbol(kSetKeepAliveInterval): undefined,
      Symbol(kSetKeepAliveCount): undefined
    },
    Symbol(kOutHeaders): [Object: null prototype] {
      accept: [Array],
      'content-type': [Array],
      authorization: [Array],
      'user-agent': [Array],
      'content-length': [Array],
      'accept-encoding': [Array],
      host: [Array]
    },
    Symbol(errored): null,
    Symbol(kHighWaterMark): 65536,
    Symbol(kRejectNonStandardBodyWrites): false,
    Symbol(kPath): '/v22.0/681389405061633/messages',
    Symbol(kUniqueHeaders): null
  },
  response: {
    status: 401,
    statusText: 'Unauthorized',
    headers: Object [AxiosHeaders] {
      'debug-link': 'https://www.meta.com/debug/?mid=3ee81d39a6f40f0bdec73cf2b44c45a3',
      'error-mid': '3ee81d39a6f40f0bdec73cf2b44c45a3',
      vary: 'Origin',
      'access-control-allow-origin': '*',
      'content-type': 'application/json',
      'www-authenticate': 'OAuth "Facebook Platform" "invalid_token" "The token has expired on Friday, 05-Sep-25 01:31:43 PDT. The current time is Thursday, 10-Sep-26 09:00:00 PDT."',
      'strict-transport-security': 'max-age=15552000; preload',
      pragma: 'no-cache',
      'cache-control': 'no-store',
      expires: 'Sat, 01 Jan 2000 00:00:00 GMT',
      'x-fb-request-id': 'AYYK6zkYeh3QF8JIQESOjg0',
      'x-fb-trace-id': 'GZmNybRi4rs',
      'x-fb-rev': '1047198186',
      'x-fb-debug': 'CN0IiLV6XZbwBJCQUmryZ7NjBGtbt1zJRqKQgkqf2bZMctghGrnmn4G3tSSVRFvnsy9oy3ibYXSmn33cLgCprQ==',
      date: 'Thu, 10 Sep 2026 16:00:00 GMT',
      'proxy-status': 'http_request_error; e_proxy="AcR8_uWtd3tOAy27XDZdpJD26PTRffIxM2xcuk7XvxFlDZnwUy87b32WerJhu8CCdM4__UtxS5K6gaXRqBcC"; e_fb_twtaskhandle="AcQQdWzW61BkmXEIH0iPPOSR9J_prDoOO9elABnjslvFvTCO15JGpueve9GJXnZI5-9vSN-TX3CPZsQZE8lKWVHyNeBTZOcRFJe4N28CL6B79w0"; e_upip="AcTbyMo-p50Ig-P0hum9B0Ybcm9D-VV5U2hYZeHDdhB5WLPc1f7nJaSuozs2upexIn5JfzUnfmQj4-26h-nt3nGVitgr2X2Uq75TR8qMYQ"; e_fb_zone="AcTqBACEpSvZF88szWbzFdHvGbKschxTvj5DBHwu7eYzbm8sgfAWUS1GY_FMQsF5"; e_clientaddr="AcRhQ_-tuhPvnw6K2VEUL4oxgQT6kwhFq-AqjAlLhDuqzxttyWEGZY5ykg0uvcs1duRpBvlgSCTGo_-mQ9-H_Tyb_gu3cVh6ENXV6pfsuTxtNw7Slg"; e_fb_vipaddr="AcRE8nzI5-KXwc4u1NfVyAuHA1ffXF7OgXBdL7wXJQzNwdRA2DMAOOvv5E3e6MrRk2R5cwNgRDymu-fCUmk5Mm9iieg1OoGuurc", http_request_error; e_proxy="AcQOVEvx0TEDdEIMVueHCFDscuXaciuX4c2EBtu4dLrr0rTrcmAb6RXwl1cah84qEH0dLSGzoepO2AY"; e_fb_twtaskhandle="AcRa_qbQgkPPglJGXq00sZw0F-rS8VVdd2hKrm83w34Asdnn5X6hL_aN7e7RiuxqYdEwtHF-FmpOm0cdx3S5VSOsj_q6MvatqyKS"; e_upip="AcTMVk5_3ExnV3G3KHl3HEwHNYhL3iTjshamFdzK9vboDSI0pb7j77yGs6KmmG_MzjvQKrgWNwCxu6q8uA1tkBFeSjvTnlLqMzI"; e_fb_zone="AcTWzIc7o21JtDWid9m9eymjI42qMagWsExHELaWUYSzMazAIkGKi1fro4ip0A"; e_clientaddr="AcT0MUGB4Dsm1AVVAj-bhgHs186E1BlBtY7ZAKFLkQl7_eW91IgroHPilnvHLhqAFRNSn9gZiy9Bo1oN4h8"; e_fb_vipaddr="AcQT1pk47-SvDCWu3rSixmTNp6Jr19fIKPSyaB2FyAIbcfKoxOGS9iKnMaIFD0gLi66CtUqQOA"',
      'x-fb-connection-quality': 'GOOD; q=0.7, rtt=51, rtx=0, c=10, mss=1380, tbw=4538, tp=-1, tpl=-1, uplat=308, ullat=0',
      'alt-svc': 'h3=":443"; ma=86400',
      connection: 'keep-alive',
      'content-length': '208'
    },
    config: {
      transitional: [Object],
      adapter: [Array],
      transformRequest: [Array],
      transformResponse: [Array],
      timeout: 0,
      xsrfCookieName: 'XSRF-TOKEN',
      xsrfHeaderName: 'X-XSRF-TOKEN',
      maxContentLength: -1,
      maxBodyLength: -1,
      env: [Object],
      validateStatus: [Function: validateStatus],
      headers: [Object [AxiosHeaders]],
      url: 'https://graph.facebook.com/v22.0/681389405061633/messages',
      method: 'post',
      data: '{"messaging_product":"whatsapp","to":"8801711567905","type":"text","text":{"body":"DAILY REPORT - SHARIF BEARING\\nDate: 2026-09-10\\nTime: 10:00PM\\n\\nCustomer Due: 0\\nDue Collection: 0\\nSupplier Due: 0\\nDue Payment: 0\\nSales: 0\\nExpense: 0\\nProfit/Loss: 0"}}',
      allowAbsoluteUrls: true
    },
    request: <ref *1> ClientRequest {
      _events: [Object: null prototype],
      _eventsCount: 7,
      _maxListeners: undefined,
      outputData: [],
      outputSize: 0,
      writable: true,
      destroyed: true,
      _last: false,
      chunkedEncoding: false,
      shouldKeepAlive: true,
      maxRequestsOnConnectionReached: false,
      _defaultKeepAlive: true,
      useChunkedEncodingByDefault: true,
      sendDate: false,
      _removedConnection: false,
      _removedContLen: false,
      _removedTE: false,
      strictContentLength: false,
      _contentLength: 257,
      _hasBody: true,
      _trailer: '',
      finished: true,
      _headerSent: true,
      _closed: true,
      _header: 'POST /v22.0/681389405061633/messages HTTP/1.1\r\n' +
        'Accept: application/json, text/plain, */*\r\n' +
        'Content-Type: application/json\r\n' +
        'Authorization: Bearer EAAW6zcnDZBLMBPB6zmrr0gR2qy0imDO7CGjnHRMwX1G9D9auCZCJKq1v1FdbRXIyReq4qW85xXfGwKZCHgDIfFFk0ZCgU91dwOELxmrHE57hPqOCw7nZAnlnaFC0ps9nw62W5n9vyP6DNW8ZAcJD9edmPsCZCkqh6RAtPq1jdZA35ykYRm6DqB4YTXxH6X8jydqqfFj6kTli1YItVWUZAlkzxBWUw4AdwtLcD1nUEWMXu\r\n' +
        'User-Agent: axios/1.15.0\r\n' +
        'Content-Length: 257\r\n' +
        'Accept-Encoding: gzip, compress, deflate, br\r\n' +
        'Host: graph.facebook.com\r\n' +
        'Connection: keep-alive\r\n' +
        '\r\n',
      _keepAliveTimeout: 0,
      _onPendingData: [Function: nop],
      agent: [Agent],
      socketPath: undefined,
      method: 'POST',
      maxHeaderSize: undefined,
      insecureHTTPParser: undefined,
      httpValidation: undefined,
      joinDuplicateHeaders: undefined,
      _ended: true,
      res: [IncomingMessage],
      aborted: false,
      timeoutCb: null,
      upgradeOrConnect: false,
      parser: null,
      maxHeadersCount: null,
      reusedSocket: false,
      host: 'graph.facebook.com',
      protocol: 'https:',
      _redirectable: [Writable],
      Symbol(shapeMode): false,
      Symbol(kCapture): false,
      Symbol(kBytesWritten): 0,
      Symbol(kNeedDrain): false,
      Symbol(corked): 0,
      Symbol(kChunkedBuffer): [],
      Symbol(kChunkedLength): 0,
      Symbol(kSocket): [TLSSocket],
      Symbol(kOutHeaders): [Object: null prototype],
      Symbol(errored): null,
      Symbol(kHighWaterMark): 65536,
      Symbol(kRejectNonStandardBodyWrites): false,
      Symbol(kPath): '/v22.0/681389405061633/messages',
      Symbol(kUniqueHeaders): null
    },
    data: { error: [Object] }
  },
  status: 401
}
