Approval failure during the notary acceptance step in onboarding flow (Gov. Auth. 2.4.0 / SIMPL FE 2.5.0)
While going through the first part of the onboarding procedure with the agents running v2.4.0 and Simpl FE v2.5.0, a problem appears at the point where the notary is expected to accept an onboarding request.
During this step, the UI triggers the usual sequence of calls: first retrieving the full list of identity attributes from /sapApi/v1/identityAttributes, and then loading the attributes currently associated with the onboarding request from /onboardingRequests/{id}/identityAttributes. What stands out is that the first endpoint returns the complete definitions, while the second only returns the attribute codes.
Immediately after this, the system attempts to approve the request via POST /onboardingRequests/{id}/approve. At that moment, the backend returns a 400 Bad Request indicating that certain fields within identityAttributeDTOs— such as name, enabled, and assignableToRoles—are missing or null.
The behaviour suggests that the approval endpoint might be performing validation assuming a more complete attribute structure than the one present on the onboarding request at that stage. It is unclear whether the process is expected to enrich or update these attributes before approval, or whether something in the flow is not being triggered.
Could you confirm whether the approval step is intended to operate with only the attribute codes, or if the onboarding request is expected to contain the full attribute definitions before calling the approval endpoint?
ERROR RESPONSE:
{
"type": "https://simpl.ec.europa.eu/errors/validationError",
"title": "Bad Request",
"status": 400,
"detail": "Invalid request content.",
"instance": "/v1/onboardingRequests/019aa140-8ce5-716f-8fde-5164308f6a0e/approve",
"errors": [
{
"key": "identityAttributeDTOs.name",
"value": null,
"reason": "no debe estar vacío",
"type": "FIELD",
"message": "Error on field [ identityAttributeDTOs.name ], rejected value [ null ] with reason [ no debe estar vacío ]"
},
{
"key": "identityAttributeDTOs.enabled",
"value": null,
"reason": "no debe ser nulo",
"type": "FIELD",
"message": "Error on field [ identityAttributeDTOs.enabled ], rejected value [ null ] with reason [ no debe ser nulo ]"
},
{
"key": "identityAttributeDTOs.name",
"value": null,
"reason": "no debe estar vacío",
"type": "FIELD",
"message": "Error on field [ identityAttributeDTOs.name ], rejected value [ null ] with reason [ no debe estar vacío ]"
},
{
"key": "identityAttributeDTOs.assignableToRoles",
"value": null,
"reason": "no debe ser nulo",
"type": "FIELD",
"message": "Error on field [ identityAttributeDTOs.assignableToRoles ], rejected value [ null ] with reason [ no debe ser nulo ]"
},
{
"key": "identityAttributeDTOs.enabled",
"value": null,
"reason": "no debe ser nulo",
"type": "FIELD",
"message": "Error on field [ identityAttributeDTOs.enabled ], rejected value [ null ] with reason [ no debe ser nulo ]"
},
{
"key": "identityAttributeDTOs.assignableToRoles",
"value": null,
"reason": "no debe ser nulo",
"type": "FIELD",
"message": "Error on field [ identityAttributeDTOs.assignableToRoles ], rejected value [ null ] with reason [ no debe ser nulo ]"
}
]
}