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

Error: Cannot find module 'dotenv'
Require stack:
- /home/ssentine/ctg-containerbot.s4sentinel.com.bd/app.js
- /usr/local/lsws/fcgi-bin/lsnode.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1207:15)
    at Module._load (node:internal/modules/cjs/loader:1038:27)
    at Module.require (node:internal/modules/cjs/loader:1289:19)
    at require (node:internal/modules/helpers:182:18)
    at Object.<anonymous> (/home/ssentine/ctg-containerbot.s4sentinel.com.bd/app.js:1:1)
    at Module._compile (node:internal/modules/cjs/loader:1521:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1623:10)
    at Module.load (node:internal/modules/cjs/loader:1266:32)
    at Module._load (node:internal/modules/cjs/loader:1091:12)
    at Module.require (node:internal/modules/cjs/loader:1289:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/ssentine/ctg-containerbot.s4sentinel.com.bd/app.js',
    '/usr/local/lsws/fcgi-bin/lsnode.js'
  ]
}

Node.js v20.20.2
node:internal/modules/cjs/loader:1210
  throw err;
  ^

Error: Cannot find module 'dotenv'
Require stack:
- /home/ssentine/ctg-containerbot.s4sentinel.com.bd/app.js
- /usr/local/lsws/fcgi-bin/lsnode.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1207:15)
    at Module._load (node:internal/modules/cjs/loader:1038:27)
    at Module.require (node:internal/modules/cjs/loader:1289:19)
    at require (node:internal/modules/helpers:182:18)
    at Object.<anonymous> (/home/ssentine/ctg-containerbot.s4sentinel.com.bd/app.js:1:1)
    at Module._compile (node:internal/modules/cjs/loader:1521:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1623:10)
    at Module.load (node:internal/modules/cjs/loader:1266:32)
    at Module._load (node:internal/modules/cjs/loader:1091:12)
    at Module.require (node:internal/modules/cjs/loader:1289:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/ssentine/ctg-containerbot.s4sentinel.com.bd/app.js',
    '/usr/local/lsws/fcgi-bin/lsnode.js'
  ]
}

Node.js v20.20.2
node:internal/modules/cjs/loader:1210
  throw err;
  ^

Error: Cannot find module 'dotenv'
Require stack:
- /home/ssentine/ctg-containerbot.s4sentinel.com.bd/app.js
- /usr/local/lsws/fcgi-bin/lsnode.js
    at Module._resolveFilename (node:internal/modules/cjs/loader:1207:15)
    at Module._load (node:internal/modules/cjs/loader:1038:27)
    at Module.require (node:internal/modules/cjs/loader:1289:19)
    at require (node:internal/modules/helpers:182:18)
    at Object.<anonymous> (/home/ssentine/ctg-containerbot.s4sentinel.com.bd/app.js:1:1)
    at Module._compile (node:internal/modules/cjs/loader:1521:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1623:10)
    at Module.load (node:internal/modules/cjs/loader:1266:32)
    at Module._load (node:internal/modules/cjs/loader:1091:12)
    at Module.require (node:internal/modules/cjs/loader:1289:19) {
  code: 'MODULE_NOT_FOUND',
  requireStack: [
    '/home/ssentine/ctg-containerbot.s4sentinel.com.bd/app.js',
    '/usr/local/lsws/fcgi-bin/lsnode.js'
  ]
}

Node.js v20.20.2
Webhook update failed: GrammyError: Call to 'editMessageText' failed! (400: Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message)
    at toGrammyError (/home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/core/error.js:47:12)
    at ApiClient.callApi (/home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/core/client.js:100:48)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async /home/ssentine/ctg-containerbot.s4sentinel.com.bd/app.js:147:3
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13 {
  error: GrammyError: Call to 'editMessageText' failed! (400: Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message)
      at toGrammyError (/home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/core/error.js:47:12)
      at ApiClient.callApi (/home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/core/client.js:100:48)
      at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
      at async /home/ssentine/ctg-containerbot.s4sentinel.com.bd/app.js:147:3
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13 {
    method: 'editMessageText',
    payload: {
      chat_id: 1191807800,
      message_id: 6,
      text: '📄 Excel file selected.\n' +
        '\n' +
        'Send container numbers separated by commas or new lines.',
      business_connection_id: undefined
    },
    ok: false,
    error_code: 400,
    description: 'Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message',
    parameters: {}
  },
  ctx: Context {
    update: { update_id: 921886251, callback_query: [Object] },
    api: Api {
      token: '8338462330:AAFtaS_Dcwt0vmRAD1OqDerJ0oSy_f2Alp8',
      options: undefined,
      raw: {},
      config: [Object]
    },
    me: {
      id: 8338462330,
      is_bot: true,
      first_name: 'PORT_COMMUNITY_SYSTEM_BOT',
      username: 'PORT_COMMUNITY_SYSTEM_BOT',
      can_join_groups: true,
      can_read_all_group_messages: false,
      supports_inline_queries: false,
      supports_guest_queries: false,
      can_connect_to_business: false,
      has_main_web_app: false,
      has_topics_enabled: false,
      allows_users_to_create_topics: false,
      can_manage_bots: false,
      supports_join_request_queries: false
    },
    match: [
      'search:excel',
      'excel',
      index: 0,
      input: 'search:excel',
      groups: undefined
    ]
  },
  name: 'BotError'
}
Webhook update failed: GrammyError: Call to 'editMessageText' failed! (400: Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message)
    at toGrammyError (/home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/core/error.js:47:12)
    at ApiClient.callApi (/home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/core/client.js:100:48)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async /home/ssentine/ctg-containerbot.s4sentinel.com.bd/app.js:147:3
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
    at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13 {
  error: GrammyError: Call to 'editMessageText' failed! (400: Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message)
      at toGrammyError (/home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/core/error.js:47:12)
      at ApiClient.callApi (/home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/core/client.js:100:48)
      at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
      at async /home/ssentine/ctg-containerbot.s4sentinel.com.bd/app.js:147:3
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:578:13
      at async /home/ssentine/nodevenv/ctg-containerbot.s4sentinel.com.bd/20/lib/node_modules/grammy/out/composer.js:62:13 {
    method: 'editMessageText',
    payload: {
      chat_id: 1191807800,
      message_id: 6,
      text: '📄 Excel file selected.\n' +
        '\n' +
        'Send container numbers separated by commas or new lines.',
      business_connection_id: undefined
    },
    ok: false,
    error_code: 400,
    description: 'Bad Request: message is not modified: specified new message content and reply markup are exactly the same as a current content and reply markup of the message',
    parameters: {}
  },
  ctx: Context {
    update: { update_id: 921886250, callback_query: [Object] },
    api: Api {
      token: '8338462330:AAFtaS_Dcwt0vmRAD1OqDerJ0oSy_f2Alp8',
      options: undefined,
      raw: {},
      config: [Object]
    },
    me: {
      id: 8338462330,
      is_bot: true,
      first_name: 'PORT_COMMUNITY_SYSTEM_BOT',
      username: 'PORT_COMMUNITY_SYSTEM_BOT',
      can_join_groups: true,
      can_read_all_group_messages: false,
      supports_inline_queries: false,
      supports_guest_queries: false,
      can_connect_to_business: false,
      has_main_web_app: false,
      has_topics_enabled: false,
      allows_users_to_create_topics: false,
      can_manage_bots: false,
      supports_join_request_queries: false
    },
    match: [
      'search:excel',
      'excel',
      index: 0,
      input: 'search:excel',
      groups: undefined
    ]
  },
  name: 'BotError'
}
