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.
Please remove the spam
didn't checked yet...
did it happen even without custom fields ?