'Cannot upload document via Telegram bot API

I'm using NestJS, there is axios module inside it. I read that Telegram accepts only multipart/form-data for files, so I use form-data package. I have only 400 errors, that don't represent anything. I don't want to use packages like telegraf (it's awesome, I know) for this simple usecase.

const config: AxiosRequestConfig = {
  headers: { 'Content-Type': 'multipart/form-data' },
};

const file = await readFile(path);

const body = new FormData();
body.append('chat_id', this.chatId.toString());
body.append('document', file, { filename: 'document.pdf' });

try {
  const res = await firstValueFrom(this.http.post(`${this.tgURL}/sendDocument`, body, config));
} catch (e) {
  console.log(e.message);
}


Solution 1:[1]

Telegram needs boundary in header. So:

const config: AxiosRequestConfig = {
    headers: { 'Content-Type': `multipart/form-data; boundary=${body.getBoundary()}` },
};

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Tryam