send a PATCH API call to the {{base_url}}/{{base_path}}/users/{{user_id}} API
Contents:
{"email":"testing@somemail.com", "some_custom_field": "0"}
for the user specified by the {user_id}, the mail and custom field get updated to the values sent in the API call
HTTP 500 Internal Server Error : "Save failed with the following error: You can't save a user account without selecting at least one user group."
PHP 8.0.18
Joomla 4.1.5 + 4.2.0-beta4-dev
When doing an API PATCH call to the USERS API (my use-case would be to update a custom field for the user), I cannot do the API call without specifying the "groups":["1","2","3" (etc)] array.
I don't want to updade the user groups nor to have to first GET all the USER groups in order to post them back unchanged...
| Labels |
Removed:
?
|
||
| Labels |
Added:
No Code Attached Yet
|
||
| Labels |
Added:
?
|
||
| Status | New | ⇒ | Closed |
| Closed_Date | 0000-00-00 00:00:00 | ⇒ | 2022-07-16 07:33:27 |
| Closed_By | ⇒ | alikon |
Hi,
I've tried to test but I get a HTTP 500 error, whatever API call I try.
"View not found [name, type, prefix]: tags, html, api"
I think I might have broken something while trying to troubleshoot, but I am at a loss as to what...
Distracted, doing this while looking after kids, didn't note every little thing down.... Classic #fail....
Any idea which file I can check against the source branch and see what stupid thing I did ?
Sorry for being overly lame !
| Status | Closed | ⇒ | New |
| Closed_Date | 2022-07-16 07:33:27 | ⇒ | |
| Closed_By | alikon | ⇒ | |
| Labels |
Added:
Webservices
Removed: ? |
||
| Labels |
Added:
Feature
|
||
This issue occurs because Joomla’s Users API requires at least one user group to be passed when updating a user via a PATCH request. If you don’t include the "groups" field, Joomla attempts to save the user without any groups assigned — which triggers the error:
"Save failed with the following error: You can't save a user account without selecting at least one user group."
Workaround / Solution:
To successfully update user data (like email or custom fields) without changing groups, you can follow one of these approaches:
Include the existing user groups in your PATCH request.
First, perform a GET request to fetch the current user details:
GET {{base_url}}/{{base_path}}/users/{{user_id}}
Copy the "groups" array from the response and include it in your PATCH request:
{
"email": "testing@somemail.com",
"some_custom_field": "0",
"groups": ["2", "8"]
}
Alternatively, create a small plugin or override that modifies Joomla’s Users API behavior — allowing PATCH requests to skip group validation when "groups" is not provided.
Expected Fix (Joomla Core Improvement):
Ideally, Joomla should handle PATCH requests as partial updates, not full replacements, meaning it shouldn’t require unchanged fields (like groups) to be resent. This might be addressed in future Joomla versions.
🔗 For professional API integration, error handling, and Joomla optimization services, visit Ecom Solutions
— experts in **custom web development, API setup, and CMS troubleshooting.
Please remove the spam
didn't checked yet...
did it happen even without custom fields ?