[IGN-16081] Ignition 8.3.002 API user source creation issue

Hello,

I'm currently working on configuring my ignition 8.3.002 gateway using the API.
It's generally working well, but I'm having an issue creating an internal user source.

When I do the request, it does return success and I see the user source inside the gateway. But I'm not able to create any users for this user source afterwards, either manually or through the API. User creation requests do work on manually created user source.
The error I get is User Source "" not found, no matter which name I use for the user source.
This is the json payload "user_source_internal_config" I'm using for the user source creation:
{
"collection": "core",
"enabled": true,
"description": "",
"type": "ignition/user-source",
"config": {
"profile": {
"type": "INTERNAL",
"scheduleRestricted": false,
"failoverProfile": "",
"failoverMode": "SOFT",
"cacheValidationTimeout": 15,
"lockoutEnabled": true,
"lockoutAttempts": 3,
"lockoutWindow": 10
},
"settings": {
"passwordComplexity": 4,
"passwordContainsPassword": true,
"passwordContainsUserName": true,
"passwordHistory": 0,
"passwordMaxAge": 0,
"passwordMaxRepeatedChars": 3,
"passwordMinLength": 8
}
}
}

And this is the playbook task I'm using where I inject the name:

name: Create InternalEmergency user source
ansible.builtin.uri:
url: "{{ ignition_gateway_url }}/data/api/v1/resources/ignition/user-source"
method: POST
headers:
Accept: "application/json"
Content-Type: "application/json"
X-Ignition-API-Token: "{{ api_token }}"
body: >-
{{ [user_source_internal_config | combine({
'name': 'Example Name'
})] | to_json }}
body_format: json
return_content: true
Accept status code 409 which indicates the resource already exists
status_code:
- 200
- 409
validate_certs: false
register: user_source_internal_create_response

Can you remove the type: "ignition/user-source" from your base config. This is not in the open api documentation and I don't see it when we make a UI call to create the user source.

Still getting the same error sadly.

This is the updated payload:
{
"collection": "core",
"enabled": true,
"description": "",
"config": {
"profile": {
"type": "INTERNAL",
"scheduleRestricted": false,
"failoverProfile": "",
"failoverMode": "SOFT",
"cacheValidationTimeout": 15,
"lockoutEnabled": true,
"lockoutAttempts": 3,
"lockoutWindow": 10
},
"settings": {
"passwordComplexity": 4,
"passwordContainsPassword": true,
"passwordContainsUserName": true,
"passwordHistory": 0,
"passwordMaxAge": 0,
"passwordMaxRepeatedChars": 3,
"passwordMinLength": 8
}
}
}

This is the full log of the user creation task (with some sensitive info removed):
TASK [ignition_deploy_API : Create Local user] ********************
[ERROR]: Task failed: Module failed: Status code was 500 and not [200, 201, 409]: HTTP Error 500: Server Error
fatal: [localhost]: FAILED! => {"cache_control": "no-cache, no-store", "changed": false, "connection": "close", "content": "{\n "schemas": [\n "urn:ietf:params:scim:api:messages:2.0:Error"\n ],\n "detail": "Unable to query user with userName 'ExampleUser' from profile 'ExampleSource': User Source \"\" not found.",\n "status": 500\n}", "content_type": "application/json", "date": "Wed, 22 Apr 2026 07:46:13 GMT", "elapsed": 0, "json": {"detail": "Unable to query user with userName 'ExampleUser' from profile 'ExampleSource': User Source "" not found.", "schemas": ["urn:ietf:params:scim:api:messages:2.0:Error"], "status": 500}, "msg": "Status code was 500 and not [200, 201, 409]: HTTP Error 500: Server Error", "pragma": "no-cache", "redirected": false, "referrer_policy": "strict-origin-when-cross-origin", "set_cookie": "0e30b033119386cca47da0b0ee537f81=6219b57fd33af8bc826e8b78614cb5e8; path=/; HttpOnly; Secure; SameSite=None", "status": 500, "transfer_encoding": "chunked", "url": "``https://xxxx/data/api/v1/scim/ExampleSource/Users``", "x_content_type_options": "nosniff", "x_frame_options": "SAMEORIGIN", "x_xss_protection": "1; mode=block"}

It looks like you are targeting the scim? Are you trying to create a User Resource through scim?
The payload you linked above is for the post method for Create User Source at /data/api/v1/resources/ignition/user-source not for Create user Resource for /data/api/v1/scim/{profile-name}/{scim-version}/Users

The Create User Resource is a much different payload. If creating a User Source target the endpoint /data/api/v1/resources/ignition/user-source

I want to create both - first the user source and then the user resource.
The user source creation returns 200, so that's why I haven't posted the response.
I can also see the user source in the UI afterwards.

The issue comes afterwards, when I want to create a user resource. Here I get the error that I posted above. The user resource creation task does work on user sources created in the UI though.

So we have 2 scenarios:

Scenario 1

  1. Create User Source with API -> Success
  2. Create User Resource with API or Create User Resource with UI -> Fail

Scenario 2

  1. Create User Source with UI -> Success
  2. Create User Resource with API or Create User Resource using UI -> Success

The reason I believe it is the User Source API creation that is causing the issue even though it returns success is because the User Resource creation works fine User Sources created with the UI.

Also the error message is showing an empty User Source name in the response as seen in my previous post, which is strange.

Hope this helps clearing it up.

Br.

1 Like

Ok I think i found the issue I dug into it this some more. Your failover profile needs to be null. if using Failover mode soft."failoverProfile": null when using Hard it accepts an empty string.

That fixed it!

You're amazing, thanks for your help!