'Invite User' API call is failing with "The provided '#microsoft.graph.aadUserConversationMember' for 'odXXX.type' is not valid for this operation"

Automaton Solutions 0 Reputation points
2026-01-29T18:14:50.9533333+00:00

Receiving an error message when trying to add a team member to an existing group chat. However, the error message, ""The provided '#microsoft.graph.aadUserConversationMember' for 'odXXX.type' is not valid for this operation"" doesn't seem to make any sense.

All members already in the group chat are marked as 'aadUserConversationMember', the inviting user is an owner of the group chat. What could be causing this error response from the API?

POST to URL:
https://graph.microsoft.com/beta/chats/[[THREAD_ID]]@thread.v2/members

BODY:
{

"@odXXX.type": "#microsoft.graph.aadUserConversationMember",

"roles": [],

"visibleHistoryStartDateTime": "0001-01-01T00:00:00Z",

"******@odXXX.bind": "https://graph.microsoft.com/v1.0/users/[[USER_ID]]"

}

ERROR MESSAGE:
{"error":{"code":"BadRequest","message":"The provided '#microsoft.graph.aadUserConversationMember' for 'odXXX.type' is not valid for this operation.","innerError":{"date":"2026-01-29T18:10:32","request-id":"<PII:moderator removed>","client-request-id":"<PII:moderator removed>"}}}

Microsoft Teams | Development
Microsoft Teams | Development
Building, integrating, or customizing apps and workflows within Microsoft Teams using developer tools and APIs
{count} votes

3 answers

Sort by: Most helpful
  1. TiNo-T 10,735 Reputation points Microsoft External Staff Moderator
    2026-01-30T06:01:56.7733333+00:00

    Please understand that our forum is a public platform, and we will modify your question to cover the personal information in the description. Kindly ensure that you hide these personal or organization information next time you post error or some information to protect personal data. 

    Dear @Automaton Solutions,

    Welcome to Microsoft Q&A Forum!

    You received the following error when calling the Graph API:

    "The provided '#microsoft.graph.aadUserConversationMember' for 'odXXX.type' is not valid for this operation."

    This typically indicates that the API is rejecting the request due to one of the following reasons:

    1.Unsupported chat type:

    The API may only support adding members to group chats (chatType = group). If the chat is a one-on-one or a meeting chat (chatType = oneOnOne or meeting), adding members is not allowed. Please ensure the chat you're targeting is a standard group chat.

    2.API version mismatch:

    You're currently using the /beta endpoint with a ******@odXXX.bind reference to the /v1.0/users/... path. This mismatch may cause issues. You have two options:

    • Switch to the stable /v1.0 endpoint, which now fully supports adding members to group chats.
    • Or, if you continue using the /beta endpoint, update the ******@odXXX.bind to reference the beta path: "******@odXXX.bind": "https://graph.microsoft.com/beta/users/[[USER_ID]]"

    3.External users:

    If the user you're trying to add is external to your organization, they must first be invited and accepted into your Azure AD tenant. The Graph API does not automatically provision external users.

    Therefore, I suggest updating your API call as follows:

    • Use the /v1.0 endpoint:

    POST https://graph.microsoft.com/v1.0/chats/{chat-id}/members

    • Request body:
    {
      "@odXXX.type": "#microsoft.graph.aadUserConversationMember",
      "roles": [],
      "visibleHistoryStartDateTime": "0001-01-01T00:00:00Z",
      "******@odXXX.bind": "https://graph.microsoft.com/v1.0/users/[[USER_ID]]"
    }
    
    • Ensure the chat is a group chat and the user being added is already part of your Azure AD tenant.

    Here is a helpful article that you can consult: Add member to a chat

    Also, I found several articles that may be related to your situation, please kindly take a look:

    User's image

    I hope this information can give you some insights and please feel free to update to me in comment section. Wish you a pleasant day!


    If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment". 

    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread. 

    0 comments No comments

  2. Sayali-MSFT 4,611 Reputation points Microsoft External Staff Moderator
    2026-01-30T07:06:21.66+00:00

    Hello @Automaton Solutions,
    The error occurs because Microsoft Graph only allows adding members to group chats, not because of any issue with your payload or @odata.type. Even though your JSON is valid and the user has the correct role, Teams enforces strict roster rules: one-on-one chats, meeting chats, and system-locked chats cannot have members added. When you attempt this, the server returns RosterAddMemberBlocked, meaning the chat’s roster is structurally locked.

    You can confirm this by checking the chat’s chatType via Graph—only chatType = "group" supports adding members.
    To resolve the issue, you must create a new group chat (or a migration-mode group chat if applicable); meeting chats inherit membership from the meeting roster and cannot be modified.

    0 comments No comments

  3. Automaton Solutions 0 Reputation points
    2026-01-30T17:39:28.2933333+00:00

    None of the explanations provided are correct.

    1. 'Add Member to Channel' will not work as suggested by TiNo. this is not a channel. It is a Group chat.
    2. The Chat type is 'Group' so the explanation that the chat type is not 'Group' is not correct. Although several AI agents have insisted to me that this is the root of the problem; it is not.
    3. It's not a permissions related issue, because I am able to use this same account to manually invite users through the frontend.
    4. The beta endpoint is not the problem, it happens the same whether I use the beta or stable endpoint.

    I'm really getting frustrated here. Why isn't the API behaving as described in the documentation? There should be no problem with this API call. Please help.ECf3CueDWi


Your answer

Answers can be marked as 'Accepted' by the question author and 'Recommended' by moderators, which helps users know the answer solved the author's problem.