No Code Attached Yet bug Webservices
avatar KaKitLeng
KaKitLeng
16 Apr 2026

What happened?

  1. Verify a published article category exists (e.g., id=24).
  2. Send the following request (body copied verbatim from the official docs at https://docs.joomla.org/J4.x:Joomla_Core_APIs):
POST https://[domain]/api/index.php/v1/content/articles

Headers:
  X-Joomla-Token: <valid super-user token>
  Content-Type: application/json
  Accept: application/vnd.api+json

Body:
{
  "alias": "my-article",
  "articletext": "My text",
  "catid": 24,
  "language": "*",
  "metadesc": "",
  "metakey": "",
  "title": "Here is an article"
}

Version

6.1

Expected result

New article created.

Actual result

{
    "errors": [
        {
            "title": "Field required: Title"
        }
    ]
}

System Information

  • Joomla! version: 6.1.0 Stable [Nyota]
  • PHP Version: 8.3.30
  • Web Server: Apache (apache2handler)
  • Database: MySQL 8.4.6
  • Database Collation: utf8mb4_0900_ai_ci
  • Joomla Backward Compatibility Plugin: Enabled (classes_aliases:"1", legacy_classes:"1")

Additional Comments

The API validator partially sees the body: when catid is also omitted, the error becomes:

{
    "errors": [
        {
            "title": "Field required: Title\nField required: Category"
        }
    ]
}

Removing catid adds a Category error, so the body is being parsed, but the title field always fails the required check even when a non-empty string is supplied.

Tested variations (all fail with the same Field required: Title error)

  • Different title values: plain text, with/without apostrophe, short strings, long strings
  • Different unique aliases
  • Content-Type application/json and application/vnd.api+json
  • Postman and direct curl
avatar KaKitLeng KaKitLeng - open - 16 Apr 2026
avatar KaKitLeng KaKitLeng - change - 16 Apr 2026
Labels Added: bug
avatar KaKitLeng KaKitLeng - labeled - 16 Apr 2026
avatar joomla-cms-bot joomla-cms-bot - change - 16 Apr 2026
Labels Added: No Code Attached Yet
avatar joomla-cms-bot joomla-cms-bot - labeled - 16 Apr 2026
avatar KaKitLeng KaKitLeng - change - 16 Apr 2026
The description was changed
avatar KaKitLeng KaKitLeng - edited - 16 Apr 2026
avatar alikon
alikon - comment - 17 Apr 2026

i'm unable to reproduce

Image
avatar KaKitLeng
KaKitLeng - comment - 17 Apr 2026

Resolved: root cause identified

The issue was caused by a published custom field under Content -> Fields that shared the same internal Name as a core article field. In my case, a custom field named title colliding with the core article title.

Reproduction

  1. Go to Content -> Fields in the Admin UI.
  2. Create a new field with Type: Text, Name: title.
  3. Publish the field. (Required/Not Required doesn't matter, publishing alone triggers it.)
  4. POST to /api/index.php/v1/content/articles with a valid body including "title": "...".
  5. API returns {"errors":[{"title":"Field required: Title"}]} even though the title is present in the body.

Fix: Unpublish or rename the colliding custom field.

Screenshots

Image Image

Documentation suggestion

The documentation for Custom Fields does not warn users against using names that match core field names. In J5.x:Adding custom fields/Parameters for all Custom Fields, the "Name must be unique" guidance refers to uniqueness among custom fields, not relative to core fields.

It would help to add a note listing reserved/core field names for each context (title, alias, catid, state, language, etc.).

avatar alikon
alikon - comment - 18 Apr 2026

ok good catch
there were some pr trying to solve this issue as an example #47317 and maybe some other....

imho the fastest way is to enhance documentation

avatar alikon alikon - change - 18 Apr 2026
Labels Added: Webservices
avatar alikon alikon - labeled - 18 Apr 2026

Add a Comment

Login with GitHub to post a comment