[Planner] Update task / task details return 500 'Unable to parse body as JObject.' but the update succeeds

Abierto
#176 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
54/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
javascript, python

Línea de trabajo

Start by locating the Planner connector response policies for PATCH /planner/tasks/{id} and /planner/tasks/{id}/details; the error paths in the logs may help find the failing response handling. Check how each operation handles Graph's 204 response with an empty body, then reproduce both updates and verify they return 2xx without reporting a failure after the changes are saved.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

What happened?

Planner update operations return HTTP 500 Unable to parse body as JObject. even though the update succeeds in Microsoft Graph.

Affected operations (Planner connector):

  • PATCH /v2/v1.0/planner/tasks/{id} (update task)
  • PATCH /v1.0/planner/tasks/{id}/details (update task details)

Graph returns 204 No Content with an empty body for these PATCH calls. It looks like the connector response policy tries to parse that empty body as a JSON object and fails. A read-back after the 500 shows the title and description changes were applied.

Because the write lands but the caller sees a 5xx, retries are unsafe. The Python SDK retries on 5xx, so the same PATCH can be sent several times.

What did you expect to happen?

A 2xx response (for example 200 with the updated task, or 204 with no body) when Graph accepts the update.

Steps to reproduce
  1. Create a Connector Namespace with a consented Planner connection.
  2. Create a task: POST {runtimeUrl}/v2/beta/planner/tasks with planId, title. Returns 201.
  3. Update it: PATCH {runtimeUrl}/v2/v1.0/planner/tasks/{taskId} with If-Match: <etag> and body {"title":"updated"}.
    • Result: 500 Unable to parse body as JObject.
  4. Update details: PATCH {runtimeUrl}/v1.0/planner/tasks/{taskId}/details with If-Match: <etag> and body {"description":"updated"}.
    • Result: 500, same message.
  5. GET the task and its details. Both changes were saved.
  6. For comparison, the same PATCH sent directly to Microsoft Graph returns 204 with an empty body.
Version / build

Connector Namespace 2026-05-01-preview, West Central US. Also reproduced through azure-connectors Python SDK 0.5.0b1 (PlannerClient.update_task_async, update_task_details_async).

Relevant logs or output
# PATCH /v2/v1.0/planner/tasks/{id}
HTTP 500
{
  "error": {
    "code": 500,
    "source": "<namespace>.common.logic-westcentralus.azure-apihub.net",
    "clientRequestId": "<redacted>",
    "message": "Unable to parse body as JObject.",
    "path": "choose[3]\\when[1]\\choose\\otherwise\\choose\\when[1]",
    "policyId": ""
  }
}

# PATCH /v1.0/planner/tasks/{id}/details
HTTP 500
{ "error": { "code": 500, "message": "Unable to parse body as JObject.", "path": "choose[5]\\when[1]\\...", "policyId": "" } }

# Direct Graph PATCH on the same task
HTTP 204 (empty body)
Lenguaje dominante
JavaScript
Estrellas
20
Forks
7
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de Azure/Connectors

Todos los issues de Azure/Connectors

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.