code: private Response createBackchannelAuthenticationFailResponse(String ticket, BackchannelAuthenticationFailRequest.Reason reason)
      {
          // Call Authlete's /api/backchannel/authentication/fail API.
          BackchannelAuthenticationFailResponse response = callBackchannelAuthenticationFail(ticket, reason);
  
          // 'action' in the response denotes the next action which
          // this service implementation should take.
          BackchannelAuthenticationFailResponse.Action action = response.getAction();
  
          // The content of the response to the client application.
          // The format of the content varies depending on the action.
          String content = response.getResponseContent();
  
          // Dispatch according to the action.
          switch (action)
          {
              case INTERNAL_SERVER_ERROR:
                  // 500 Internal Server Error
                  return ResponseUtil.internalServerError(content);
  
              case FORBIDDEN:
                  // 403 Forbidden.
                  return ResponseUtil.forbidden(content);
  
              case BAD_REQUEST:
                  // 400 Bad Request
                  return ResponseUtil.badRequest(content);
  
              default:
                  // This never happens.
                  throw unknownAction("/api/backchannel/authentication/fail", action);
          }
      }
docs: Create a response that describes the failure. This method
  calls Authlete's {@code /api/backchannel/authentication/fail} API.