Facing issue when handling Work IQ A2A task with TASK_STATE_INPUT_REQUIRED state

Kyle 0 Reputation points
2026-10-30T13:12:15.39+00:00

We have a copilot agent set up to use MCP tools and it prompts for confirmation when it's supposed to use the connected MCP tools. The agent responded with the following example:

{
  "jsonrpc": "2.0",
  "id": "dummyId",
  "result": {
    "task": {
      "id": "taskId",
      "contextId": "contextId",
      "status": {
        "state": "TASK_STATE_INPUT_REQUIRED",
        "message": {
          "role": "ROLE_AGENT",
          "parts": [
            {
              "text": "Additional input is required."
            },
            {
              "data": {
                "input-required": {
                  "type": "confirmation_required",
                  "sourceRequestId": "dummyId",
                  "actionId": "[{\"function\":{\"arguments\":\"{\\\"param_2\\\":\\\"dummyValue\\\",\"id\":\"dummyId\",\"type\":\"function\"}]",
                  "adaptiveCard": {
                    "type": "AdaptiveCard",
                    "version": "1.2",
                    "body": [
                      {
                        "type": "TextBlock",
                        "text": "I'll connect to XXX to process your query. Create items from a MCP tool.",
                        "wrap": true
                      },
                      {
                        "type": "Container",
                        "items": [
                          {
                            "type": "Container",
                            "id": "previewContainer",
                            "items": [
                              {
                                "type": "FactSet",
                                "facts": [
                                  {
                                    "title": "example_url",
                                    "value": "https://example.com/app/item/esdfsdf1231=/"
                                  },
                                  {
                                    "title": "is_repository",
                                    "value": "False"
                                  }
                                ]
                              }
                            ]
                          }
                        ],
                        "style": "emphasis"
                      }
                    ],
                    "actions": [
                      {
                        "type": "Action.Submit",
                        "data": {
                          "message": {
                            "actionId": "[{\"function\":{\"arguments\":\"{\\\"param_2\\\":\\\"dummyValue\\\",\"id\":\"dummyId\",\"type\":\"function\"}]",
                            "action": "[{\"function\":{\"arguments\":\"{\\\"param_2\\\":\\\"dummyValue\\\",\"id\":\"dummyId\",\"type\":\"function\"}]",
                            "sourceRequestId": "dummyId",
                            "confirmationOption": 1,
                            "isCancelOption": false,
                            "isConsequential": true,
                            "pauseResumeStoreRegion": "https://ObjectStoreBingFD.Prod.WestUS2.binginternal.com:443/sds",
                            "text": "Yes, proceed with action 'Create items from a MCP tool.'",
                            "author": "user",
                            "createdAt": "2026-10-30T08:35:37.6109312+00:00",
                            "timestamp": "2026-10-30T08:35:37.6109312+00:00",
                            "messageId": "dummyMessageId",
                            "messageType": "InvokeAction",
                            "offense": "None",
                            "contentOrigin": "TuringBot",
                            "pluginInfo": {
                              "id": "CopilotPlugins.GPTActionOpenAIPlugin==",
                              "source": "MOS3",
                              "data": {
                                "PluginType": "OpenAIPlugin",
                                "MetaOSAppId": "MetaOSAppId",
                                "MetaOSTitleId": "MetaOSTitleId",
                                "MetaOSBotId": "",
                                "GptId": "ms-teams-example",
                                "GptActionId": "examplePlugin",
                                "TitleIndex": "0",
                                "PluginName": "Example",
                                "AcquisitionContext": "Tenant",
                                "CatalogName": "MOS3",
                                "AppKind": "Public_ThirdParty"
                              },
                              "version": "3.0.0",
                              "isThirdPartyPluginSource": true,
                              "isGraphConnectorPluginType": false
                            }
                          }
                        },
                        "title": "Confirm"
                      },
                      {
                        "type": "Action.Submit",
                        "data": {
                          "message": {
                            "actionId": "[{\"function\":{\"arguments\":\"{\\\"param_2\\\":\\\"dummyValue\\\",\"id\":\"dummyId\",\"type\":\"function\"}]",
                            "action": "[{\"function\":{\"arguments\":\"{\\\"param_2\\\":\\\"dummyValue\\\",\"id\":\"dummyId\",\"type\":\"function\"}]",
                            "sourceRequestId": "dummyId",
                            "confirmationOption": 3,
                            "isCancelOption": true,
                            "isConsequential": false,
                            "pauseResumeStoreRegion": "https://ObjectStoreBingFD.Prod.WestUS2.binginternal.com:443/sds",
                            "text": "No, don't proceed with action 'Create items from a MCP tool.'",
                            "author": "user",
                            "createdAt": "2026-10-30T08:35:37.6109312+00:00",
                            "timestamp": "2026-10-30T08:35:37.6109312+00:00",
                            "messageId": "dummyMessageId",
                            "messageType": "InvokeAction",
                            "offense": "None",
                            "contentOrigin": "TuringBot",
                            "pluginInfo": {
                              "id": "CopilotPlugins.GPTActionOpenAIPlugin==",
                              "source": "MOS3",
                              "data": {
                                "PluginType": "OpenAIPlugin",
                                "MetaOSAppId": "MetaOSAppId",
                                "MetaOSTitleId": "MetaOSTitleId",
                                "MetaOSBotId": "",
                                "GptId": "ms-teams-example",
                                "GptActionId": "examplePlugin",
                                "TitleIndex": "0",
                                "PluginName": "Example",
                                "AcquisitionContext": "Tenant",
                                "CatalogName": "MOS3",
                                "AppKind": "Public_ThirdParty"
                              },
                              "version": "3.0.0",
                              "isThirdPartyPluginSource": true,
                              "isGraphConnectorPluginType": false
                            }
                          }
                        },
                        "title": "Cancel"
                      }
                    ],
                    "msTeams": {
                      "width": "full"
                    }
                  }
                }
              },
              "mediaType": "application/vnd.ms-workiq.interaction+json"
            }
          ],
          "messageId": "",
          "contextId": "contextId"
        },
        "timestamp": "2026-10-30T08:35:40.9655035+00:00"
      }
    }
  }
}

How does the response Json structure look like as the follow-up message to confirm the tool use? It is not documented on Work IQ A2A documentation, I wonder if anyone able to crack this. Been trying several Json shapes including the taskId, contextId, message.parts fields, but fail with such error -32602 The interaction response is missing, invalid, or does not match the pending task. No action was resumed.

Microsoft Copilot | Microsoft 365 Copilot | Development
0 comments No comments

2 answers

Sort by: Newest
  1. Sayali-MSFT 6,501 Reputation points Microsoft External Staff Moderator
    2026-11-03T09:58:07.3033333+00:00

    Hello Kyle,
    This looks like a gap in the current Work IQ A2A documentation rather than an issue with the taskId/contextId format.

    When the task returns TASK_STATE_INPUT_REQUIRED with type: confirmation_required, Work IQ has paused execution waiting for a specific interaction response. An ordinary follow-up SendMessage, even if it includes the same task/context IDs or a "Yes, proceed" message, doesn't appear to satisfy that interaction. That's consistent with the -32602: The interaction response is missing, invalid, or does not match the pending task error.

    The confirmation card contains internal correlation/resume information such as sourceRequestId, actionId, confirmationOption, and InvokeAction, but I wouldn't recommend constructing a payload from those fields blindly. I couldn't find a publicly documented Work IQ A2A schema showing how a client should submit this confirmation_required response.

    So unless there is an undocumented interaction-response API, this looks like something the Work IQ team needs to clarify/document. I would raise it with the Work IQ/A2A engineering team and ask specifically for the supported payload/schema for resuming a TASK_STATE_INPUT_REQUIRED task when the input type is confirmation_required.

    Once that contract is documented, the MCP operation itself should resume rather than requiring the client to start a new task.

    Was this answer helpful?

    0 comments No comments

  2. AI answer

    2026-10-30T13:13:43.7733333+00:00

    The confirmation must resume the existing TASK_STATE_INPUT_REQUIRED task using its original task ID and contextId; however, Microsoft’s public Work IQ documentation does not currently specify the JSON field placement or proprietary interaction-response schema needed to submit that MCP confirmation.

    What is established

    For your response, preserve all three levels of correlation:

    • Task: result.task.id — the original pending task, not a new task.
    • Conversation: result.task.contextId.
    • Interaction: values emitted by the selected Adaptive Card action, especially sourceRequestId, actionId, and confirmationOption.

    A2A continuation guidance requires continuing the original pending task rather than starting an unrelated action ^1^. Work IQ separately documents that subsequent messages carry the previous contextId and use the same A2A version and JSON-RPC binding ^2^.

    The public Work IQ task-management documentation exposes GetTask, CancelTask, and SubscribeToTask, but does not document an interaction-response method or a request schema for application/vnd.ms-workiq.interaction+json ^3^.

    Consequently, an exact, supported confirmation JSON cannot be derived from the published contract.

    Why an ordinary follow-up fails

    The documented generic multi-turn request looks like this:

    {
      "jsonrpc": "2.0",
      "id": "<new-request-guid>",
      "method": "SendMessage",
      "params": {
        "message": {
          "role": "ROLE_USER",
          "messageId": "<new-message-guid>",
          "contextId": "<original-context-id>",
          "parts": [
            { "text": "Yes, proceed." }
          ]
        }
      }
    }
    

    This is only the documented format for a conversational follow-up. It does not identify the pending task and is not a documented MCP confirmation response. Sending it can create another turn without satisfying the pending interaction, which is consistent with:

    The interaction response is missing, invalid, or does not match the pending task.

    Although the original task ID must participate in resumption, the Work IQ documentation does not establish whether it belongs in params.id, the message, metadata, an interaction part, or another extension field. Adding it to an invented location would therefore be speculative.

    Information that can be safely extracted

    For the Confirm action, retain the Action.Submit.data.message object exactly as received. In your example, the likely correlation candidates are:

    • sourceRequestId
    • actionId
    • confirmationOption: 1
    • isCancelOption: false
    • messageType: "InvokeAction"

    For cancellation, the card supplies confirmationOption: 3 and isCancelOption: true.

    These fields are emitted by the service, but their presence in the card does not establish the required A2A request wrapper. Do not:

    • send only "Yes" as text;
    • create a new conversation without the original contextId;
    • poll with GetTask expecting that to submit approval;
    • copy or call pauseResumeStoreRegion directly—it is not a documented public Work IQ endpoint;
    • assume the JSON-RPC id is the task ID; it identifies the JSON-RPC request.

    Because several attempted JSON shapes already return -32602, capture and escalate the following through Microsoft support or the Work IQ documentation feedback channel:

    1. The complete redacted TASK_STATE_INPUT_REQUIRED response.
    2. The exact follow-up request body and headers.
    3. Original task ID and contextId.
    4. JSON-RPC request IDs for both turns.
    5. UTC timestamps and the complete error response.
    6. Confirmation that A2A-Version: 1.0 was used on both requests.

    Ask specifically for the Work IQ A2A v1.0 interaction-response schema for application/vnd.ms-workiq.interaction+json and the documented field that binds the response to the pending task ID. Until that contract is published or supplied by Microsoft, no particular response wrapper can be presented as a supported working payload.


    References

    1. A2A agent service | Microsoft Learn
    2. Work IQ A2A quickstart
    3. Represents the JSON response from the Work IQ A2A service containing the details of the requested task, including its status, context, and any associated artifa...
    AI-generated content may be incorrect. Read our transparency notes for more information.

    Was this answer helpful?

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.