microsoftgraph / msgraph-sdk-javascript

Microsoft Graph client library for JavaScript
https://graph.microsoft.com
MIT License
729 stars 220 forks source link

Graph error : <Message id > has to be unique in a batch #1679

Open mohammedfarhan99 opened 1 month ago

mohammedfarhan99 commented 1 month ago

Bug Report

Prerequisites

For more information, see the CONTRIBUTING guide.

Description

Batch api/@microsoft/microsoft-graph-client throws an error even when you have 2 different strings

In my outlook inbox there were 2 different emails with message ids: AQMkADI1NjdjOTA3LTA2MDctNDljNS1iM2JjLWI0YzFmOGVjYjEzMABGAAADaFuLVZilDkGMRMEras84mwcAJoSf1ZrISEGDUfN0NvJ3fgAAAgEMAAAAJoSf1ZrISEGDUfN0NvJ3fgACvV-2EAAAAA== & AQMkADI1NjdjOTA3LTA2MDctNDljNS1iM2JjLWI0YzFmOGVjYjEzMABGAAADaFuLVZilDkGMRMEras84mwcAJoSf1ZrISEGDUfN0NvJ3fgAAAgEMAAAAJoSf1ZrISEGDUfN0NvJ3fgACvV-2eAAAAA==

the only discernible difference between these 2 strings is the eAAA and EAAA but they are different nonetheless

Console Errors: [Is there any console error] Batch err GraphError: Request Id AQMkADI1NjdjOTA3LTA2MDctNDljNS1iM2JjLWI0YzFmOGVjYjEzMABGAAADaFuLVZilDkGMRMEras84mwcAJoSf1ZrISEGDUfN0NvJ3fgAAAgEMAAAAJoSf1ZrISEGDUfN0NvJ3fgACvV-2EAAAAA== has to be unique in a batch.

Steps to Reproduce (roughly)

It seems like a message which is undeliverable sometimes produces a message id which is similar to the undelivered email

  1. Have an email in the inbox
  2. Reply to that email with imaginary recipients
  3. You should now receive an undelivered email message in the same email thread
  4. Extract the message ids on this thread
  5. Batch them into an array with a structure like so
    
    [    {
       id: '<Msg_id1>',
       url: '/me/messages/<MSG id 1/$value',
       method: 'GET'
     },
     {
       id: '<Msg id 2>',
       url: '/me/messages/<MSG id 2/$value',
       method: 'GET'
     }
    ]

6. Pass this as a `POST` request to graph's `$batch` endpoint via the `@microsoft/microsoft-graph-client` npm library
**Expected behavior:** The batch request should be executed

**Actual behavior:** Library throws a message id should be unique error

## Additional Context

Add any other context about the problem here..

## Usage Information
Request ID - `9ecfb982-93c9-4f64-9d2e-331ffdefd6fe`

SDK Version - 3.0.7

-   [x ] Node (Check, if using Node version of SDK)

> Node Version - [The version of Node you are using]

-   [ ] Browser (Check, if using Browser version of SDK)

> Browser Name - [The name of Browser that you are using for SDK]

> Version - [The version of the browser you are using]