I am working on an Azure B2C custom policy with a rest API call. When a user signs up or signs in, i'm hitting an api endpoint to get user information and add it back to the claims.
However, when a user is not found in the external system(such as during sign up), the api will throw a 404. When this happens the error is posted in the url and the user flow errors out.
What I would like to do is ignore the 404 error and continue to the next orchestration step where we can then check if we got any information back from the api, and if not, hit another api endpoint to generate the users info and continue on with the sign up/sign in flow.
I've been looking for ways to do this, and the only answer i've seen is about handling errors from the api side which is very difficult in this situation due to access constraints.
Whenever your API sends a non 200 response to AAD B2C, it will halt the execution of the journey. If there is a page displayed to the user, and the REST API call is run as a validation technical profile, then the error is displayed on screen. Otherwise the error is sent to the App URL.
In a Validation Technical profile, you can change this behavior by using the ContinueOnError
property.
https://learn.microsoft.com/en-us/azure/active-directory-b2c/validation-technical-profile
Call the REST API technical profile via a Validation Technical profile, then add the flag ContinueOnError="true"
.
<ValidationTechnicalProfile ReferenceId="REST-ReadProfileFromCustomerDatabase" ContinueOnError="true" >