Microsoft Teams Bot Framework: botones messageback de Adaptive Cards devuelven error 400 "Invalid JSON payload" en endpoint chatsvc desde el 23/04/2026

Mario del Rincon Garcia 0 Puntos de reputación
2026-05-05T11:49:45.4033333+00:00

Tecnologías implicadas

  • Microsoft Teams (cliente web)
  • Bot Framework / Bot Service registrado en Teams
  • Adaptive Cards con botones de tipo messageback
  • Azure App Service (endpoint de mensajería del bot)

Escenario

Tenemos Adaptive Cards desplegadas en Teams cuyos botones, al pulsarse, envían una acción messageback a nuestro bot, que la procesa a través de un App Service propio. La solución llevaba funcionando correctamente durante meses sin cambios.

Resultado observado

Desde el 23 de abril de 2026 (aprox. 09:32 UTC+2), al pulsar cualquier botón de las cards, Teams muestra un error genérico y la acción no se ejecuta. Nuestro App Service nunca llega a recibir la llamada (no hay logs desde esa fecha/hora), lo que indica que el fallo se produce en la capa de Teams antes de invocar al bot.

Analizando el tráfico con las DevTools del navegador, al pulsar un botón se realiza la siguiente petición:

POST https://teams.microsoft.com/api/chatsvc/emea/v1/agents/<bot-id>/invoke

Payload enviado (generado automáticamente por Teams, sin modificaciones nuestras):

{
    "name": "messageback",
    "appId": "<app-id>",
    "messageType": "RichText/Media_Card",
    "value": {
        "action": "realizar_comentario",
        "id_ticket": "INC000002401255",
        "tipo_comentario": "Internal",
        "texto_comentario": "prueba"
    },
    "imdisplayname": "Usuario de prueba",
    "userAadToken": "<token>",
    "serverMessageId": "1768480526928",
    "clientMessageId": "4298901944163183471"
}

Respuesta recibida (HTTP 400):

{
    "errorCode": 201,
    "message": "Invalid JSON payload.",
    "standardizedError": {
        "errorCode": 201,
        "errorSubCode": 1,
        "errorDescription": "Invalid JSON payload."
    }
}

Entorno

  • Cliente Teams: versión web (teams.microsoft.com) (también falla en app de escritorio)
  • Región del endpoint afectado: EMEA (chatsvc/emea)
  • Sin cambios en el código del bot, el App Service ni la definición de las Adaptive Cards

Pasos de resolución intentados

  1. Verificado que el payload enviado hoy es idéntico al que funcionaba correctamente días antes.
  2. Confirmado mediante logs del App Service que la petición nunca llega a nuestro backend (los últimos registros son del 23/04 a las 09:32 UTC+2).
  3. Probado con una Adaptive Card de prueba antigua (cuya definición no ha cambiado) y reproduce el mismo error.
  4. Revisada la documentación de Adaptive Cards y Bot Framework sin encontrar cambios relevantes publicados.

Pregunta

¿Ha habido algún cambio reciente en la validación del payload realizada por el endpoint chatsvc de Teams que pueda estar causando el rechazo de botones messageback con error errorCode 201 - Invalid JSON payload?

Servicio de Bot de Azure AI
Servicio de Bot de Azure AI

Servicio de Azure que proporciona un entorno integrado para el desarrollo de bots.

0 comentarios No hay comentarios

1 respuesta

Ordenar por: Muy útil
  1. Thanmayi Godithi 11,905 Puntos de reputación Personal externo de Microsoft Moderador
    2026-05-31T06:26:03.5666667+00:00

    Hola Mario del Rincon Garcia ,

    Según los síntomas que describes, esto no parece ser un problema del bot ni del Servicio de Aplicaciones. El indicador clave es que la solicitud nunca llega al endpoint de tu bot y el fallo se produce durante el paso de invocación de Teams a chatsvc.

    Algunas observaciones:

    • La respuesta HTTP 400 se devuelve directamente desde el endpoint de Teams (/api/chatsvc/emea/v1/agents/<bot-id>/invoke).
    • El error (errorCode: 201, Invalid JSON payload) se genera antes de que la actividad se envíe a tu bot.
    • Dado que las mismas definiciones de Tarjetas Adaptables y el código del bot funcionaban correctamente antes, y las tarjetas antiguas ahora presentan el mismo comportamiento, esto sugiere:
    • una regresión en el servicio de Teams,
    • un cambio en la validación del backend,
    • o un requisito de esquema que ahora se aplica con mayor rigor.

    Un aspecto que llama la atención es la carga útil generada por Teams:

    
    {
    
    "name": "messageback",
    
    "appId": "<app-id>",
    
    "messageType": "RichText/Media_Card",
    
    "value": {
    
    "action": "realizar_comentario",
    
    "id_ticket": "INC000002401255",
    
    "tipo_comentario": "Internal",
    
    "texto_comentario": "prueba"
    
    }
    
    }
    
    

    El JSON en sí parece válido, lo que hace que el mensaje de error sea algo engañoso. Podría indicar que el servicio está rechazando la carga útil debido a un esquema interno, en lugar de que el análisis del JSON falle.

    Algunas cosas que recomiendo revisar:

    1. Verificar el formato de la acción messageBack de Teams

    Asegúrese de que los botones de sus tarjetas adaptables utilicen el esquema messageBack específico de Teams, tal como se documenta:

    
    {
    
    "type": "Action.Submit",
    
    "title": "Comentar Interno",
    
    "msteams": {
    
    "type": "messageBack",
    
    "displayText": "Comentar Interno",
    
    "text": "realizar_comentario",
    
    "value": {
    
    "id_ticket": "INC000002401255",
    
    "tipo_comentario": "Internal",
    
    "texto_comentario": "prueba"
    
    }
    
    }
    
    }
    
    

    En particular:

    • msteams.type debe ser messageBack
    • Incluya tanto displayText como text
    • Verifique si hay diferencias de mayúsculas y minúsculas entre el JSON de su tarjeta y el esquema documentado
    1. Validar la carga útil completa de la Tarjeta Adaptativa

    Aunque la tarjeta haya estado funcionando durante meses, conviene validar la definición completa de la tarjeta con los esquemas actuales de Tarjetas Adaptativas y Equipos para identificar las propiedades que ya no se aceptan.

    1. Probar con una carga útil mínima

    Intenta crear una nueva tarjeta con una carga útil messageBack muy pequeña, por ejemplo:

    
    {
    
    "action": "test"
    
    }
    
    

    Si funciona correctamente, pero falla con una carga útil mayor, esto indicaría un problema de validación en el objeto value.

    1. Comparar regiones y clientes

    Dado que el punto final que falla se encuentra en EMEA (chatsvc/emea), sería útil saber:

    • ¿Se reproduce el problema para todos los usuarios?
    • ¿Se reproduce tanto en clientes web como de escritorio? (mencionaste que sí)
    • ¿Alguien puede confirmar si los bots alojados o a los que se accede desde otras regiones presentan el mismo comportamiento?

    Preguntas adicionales

    Para ayudar a acotar el problema:

    • ¿Podría compartir el JSON exacto de la Tarjeta Adaptativa (sin valores confidenciales)?
    • ¿Estás usando Action.Submit + msteams.messageBack Action.Executeo?
    • ¿Ha comparado la carga útil de la tarjeta y los encabezados de la solicitud antes y después del 23 de abril?
    • ¿Alguien más ha observado el error errorCode 201 - Carga útil JSON no válida en /agents/{bot-id}/invoke a partir del 23 de abril aproximadamente?

    Dado que ninguna solicitud llega a Bot Framework y las tarjetas implementadas previamente ahora fallan sin cambios en el código, sospecho que se trata de un cambio o regresión en la validación del servicio de Teams, en lugar de un problema en la implementación de su bot.

    ¿Le ha resultado útil esta respuesta?

    0 comentarios No hay comentarios

Su respuesta

Las respuestas pueden ser marcadas como "Aceptadas" por el autor de la pregunta y "Recomendadas" por los moderadores, lo que ayuda a los usuarios a saber que la respuesta ha resuelto el problema del autor.