No Code Attached Yet bug
avatar shamsbd71
shamsbd71
2 Nov 2026

What happened?

  1. Create an API token for a Super User (Web Services - Content plugin enabled).
  2. Take an existing article, e.g. ID 1.
  3. Send a PATCH request with articletext:
curl -X PATCH -H "X-Joomla-Token: <token>" -H "Content-Type: application/json" \
  -d '{"articletext":"<p>New intro</p><hr id=\"system-readmore\"><p>New full text</p>"}' \
  http://<site>/api/index.php/v1/content/articles/1
  1. Open the article in the backend and check its Versions.

Version

6.2

Expected result

The intro text and full text are updated (split at the read more line), the same as when articletext is sent with POST, and a new version is stored.

Actual result

The response is 200, but the article text is unchanged. Only modified is updated, so no new version is stored either.

PATCH with introtext works.

System Information

Joomla 6.2-dev, PHP 8.4, MariaDB 11

Additional Comments

For PATCH, ApiController::save() fills every field missing from the request with the stored value, including introtext and fulltext. Content::bind() splits articletext into introtext/fulltext, but parent::bind() then overwrites them with these stored values.

Found while checking #48690. It may be the cause there if the external software sends articletext.

avatar shamsbd71 shamsbd71 - open - 2 Nov 2026
avatar shamsbd71 shamsbd71 - change - 2 Nov 2026
Labels Added: bug
avatar shamsbd71 shamsbd71 - labeled - 2 Nov 2026
avatar joomla-cms-bot joomla-cms-bot - change - 2 Nov 2026
Labels Added: No Code Attached Yet
avatar joomla-cms-bot joomla-cms-bot - labeled - 2 Nov 2026
avatar shamsbd71
shamsbd71 - comment - 2 Nov 2026

PR: #48754

avatar alikon
alikon - comment - 3 Nov 2026

since #44566 we use the proper real fields "introtext" and "fulltext"

so the patch should be like this :

Image

Add a Comment

Login with GitHub to post a comment