How to update Jira ticket description with ADF formatted table using REST API

I’m having trouble modifying a ticket description using an ADF table structure through the REST API. When I try to send my request, I keep getting an error saying “Operation value must be a string”. I’m not sure what’s going wrong since the ADF format seems correct to me.

{
  "fields": {
    "description": {
      "version": 1,
      "type": "doc",
      "content": [
        {
          "type": "table",
          "attrs": {
            "isNumberColumnEnabled": false,
            "layout": "default"
          },
          "content": [
            {
              "type": "tableRow",
              "content": [
                {
                  "type": "tableCell",
                  "attrs": {},
                  "content": [
                    {
                      "type": "paragraph",
                      "content": [
                        {
                          "type": "text",
                          "text": "First row, first column"
                        }
                      ]
                    }
                  ]
                },
                {
                  "type": "tableCell",
                  "attrs": {},
                  "content": [
                    {
                      "type": "paragraph",
                      "content": [
                        {
                          "type": "text",
                          "text": "First row, second column"
                        }
                      ]
                    }
                  ]
                }
              ]
            }
          ]
        }
      ]
    }
  }
}

I’m working with Jira Cloud and trying to use the REST API to achieve this. Any ideas what might be causing this issue?

Your request structure’s probably the problem. For Jira ticket updates, you need to wrap fields in an update object - don’t use fields directly. Change your JSON to: {“update”: {“description”: [{“set”: {“version”: 1, “type”: “doc”, “content”: […]}}]}}. I hit the same issue when I started with ADF content updates. The REST API wants update format for modifications, while fields format is for creating issues. Also check you’re using the right issue key in your URL and the ticket isn’t locked by workflow restrictions.

had the same prob last week. first, check if ur jira instance supports adf tables in descriptions - some older cloud instances can’t handle complex adf structures. try testing with smth simple like a basic paragraph to see if the endpoint works. also, make sure u’ve got the right permissions to edit that ticket type.

That “Operation value must be a string” error usually means you’re hitting the wrong API endpoint. Your ADF structure looks fine, but you’re probably using the wrong HTTP method or endpoint. For updating ticket descriptions with ADF content, use PUT with /rest/api/3/issue/{issueKey} - not the bulk update or transition endpoints. Also make sure your Content-Type header is application/json. I’ve seen this exact error when people accidentally use an API endpoint that expects string values instead of structured ADF objects. Your description field should work once you hit the right endpoint with proper headers.