We noticed one of our customer help center article was not being updated because of the following response with an HTTP code of 500.
{
"type": "error.list",
"request_id": "002tv9efacb52hqthea0",
"errors": [
{
"code": "server_error",
"message": "Server Error"
}
]
}
Since the error message doesn't provide specifics, we investigated and found that the issue occurs only when an article contains a callout with more than one paragraph. Here’s the bare minimum how to reproduce the issue:
What works: Callout with one paragraph
curl --location --request PUT 'https://api.intercom.io/articles/:id' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer XXX' \
--data '{
"body": "<p class=\"no-margin\"></p>\n<div class=\"intercom-interblocks-callout\" style=\"background-color: #feedaf80; border-color:#fbc91633;\">\n<p class=\"no-margin\">Hello Mars</p>\n</div>"
}'
What does not work: Callout with two paragraphs
curl --location --request PUT 'https://api.intercom.io/articles/:id' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer XXX' \
--data '{
"body": "<div class=\"intercom-interblocks-callout\" style=\"background-color: #feedaf80; border-color: #bc91633;\">\n<pclass=\"no-margin\">Hello Mars</p>\n<p class=\"no-margin\">Hello World</p>\n</div>"
}'
The contents above are perfectly valid and was returned through the API itself. (GET /articles/:id)
Interestingly, the failed scenario works fine if you manually create an article with a two-paragraph callout through the UI.
I have also uploaded a video on YouTube demonstrating the bug:
Any guidance on how we can resolve this would be much appreciated.