Sending 401 from script Mapper

Hi, I have written a script mapper. I calling my Backend service to get some data and based upon that data I perform some checks.
I have tried this approach http://keycloak.discourse.group/t/redirect-to-error-page-during-or-after-attribute-mapping/10266.
But getting the error
[org.keycloak.services.error.KeycloakErrorHandler] (default task-5018) Uncaught server error: java.lang.RuntimeException: cannot map type for token claim

Here is the code i am using
`URI = Java.type(“java.net.URI”);
HttpClient = Java.type(“java.net.http.HttpClient”);
HttpRequest = Java.type(“java.net.http.HttpRequest”);
BodyHandlers = Java.type(“java.net.http.HttpResponse.BodyHandlers”);
StringReader = Java.type(“java.io.StringReader”);
Json = Java.type(“javax.json.Json”);

function authenticate(context) {

var req = keycloakSession.getContext().getContextObject(Java.type(“org.jboss.resteasy.spi.HttpRequest”).class);

var REST_URL = ‘https://REST_URL.com’;
var httpClient = HttpClient.newBuilder()
.build();

var httpRequest = HttpRequest.newBuilder()
.uri(URI.create(REST_URL))
.headers(“Content-Type”, “application/json; charset=UTF-8”)
.GET()
.build();
var response = httpClient.send(httpRequest, BodyHandlers.ofString());
var jsonReader = Json.createReader(new StringReader(response.body()));
var jsonObj = jsonReader.readObject();
var userIdToCheck = jsonObj.getString(“id”);
jsonReader.close();

if(userIdToCheck == ‘1’) {
context.success();
return;
} else {
var formBuilder = context.form();
var form = formBuilder
.setAttribute(‘client’, session.getContext().getClient())
.setStatus(Status.FORBIDDEN)
.createForm(‘your-custom-forbidden.ftl’); //within this ftl, you can access the client
context.failure(AuthenticationFlowError.INVALID_USER, form);
}
}`