Uploaded image for project: 'Ibexa IBX'
  1. Ibexa IBX
  2. IBX-3805

Wrong response in case lack of context for cross content type

    XMLWordPrintable

Details

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Medium Medium
    • N/A
    • None
    • Personalization
    • None
    • [4.3] - Sprint 5
    • Recommendation

    Description

      example request: 

      https://reco.perso.ibexa.co/api/v2/1652/someuser/also_clicked2?numrecs=7&attribute=name,title,image&crosscontenttype=1

       

      Exception: 

      Cannot invoke "com.yoochoose.recommender.coordinator.SamaraRecommendation.getOriginItems()" because "recommendation" is null

       

         statusCode: 500,
         reasonPhrase: "Internal Server Error",
         faultMessage: "Cannot invoke "com.yoochoose.recommender.coordinator.SamaraRecommendation.getOriginItems()" because "recommendation" is null",
         faultDetail: {
            message: "Cannot invoke "com.yoochoose.recommender.coordinator.SamaraRecommendation.getOriginItems()" because "recommendation" is null"
         },
         faultCode: "internalServerError",
         debugCause: {
            message: "Cannot invoke "com.yoochoose.recommender.coordinator.SamaraRecommendation.getOriginItems()" because "recommendation" is null",
            stackTrace: [
               "com.yoochoose.recocontroller.RecommendationControllerV2.createRecommendationResponseV2(RecommendationControllerV2.java:242)",
               "com.yoochoose.recocontroller.RecommendationControllerV2.getRecos(RecommendationControllerV2.java:201)",
               "com.yoochoose.recocontroller.RecommendationControllerV2.getRecommendations(RecommendationControllerV2.java:146)",
               "jdk.internal.reflect.GeneratedMethodAccessor169.invoke(Unknown Source)",
               "java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
               "java.base/java.lang.reflect.Method.invoke(Method.java:567)",
               "org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)",
               "org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)",
               "org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)",
               "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)",
               "org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)",
               "org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)",
               "org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1067)",
               "org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)",
               "org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)",
               "org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)",
               "javax.servlet.http.HttpServlet.service(HttpServlet.java:655)",
               "org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)",
               "javax.servlet.http.HttpServlet.service(HttpServlet.java:764)",
               "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)",
               "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)",
               "org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)",
               "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)",
               "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)",
               "com.yoochoose.services.security.SecurityContext.doAuthentication(SecurityContext.java:296)",
               "com.yoochoose.services.security.SecurityContext.doFilter(SecurityContext.java:215)",
               "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)",
               "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)",
               "com.yoochoose.services.authentication.SessionKillingFilter.doFilter(SessionKillingFilter.java:65)",
               "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)",
               "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)",
               "org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)",
               "org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)",
               "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)",
               "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)",
               "org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)",
               "org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)",
               "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)",
               "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)",
               "datadog.trace.instrumentation.springweb.HandlerMappingResourceNameFilter.doFilterInternal(HandlerMappingResourceNameFilter.java:50)",
               "org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)",
               "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)",
               "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)",
               "org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:126)",
               "org.springframework.boot.web.servlet.support.ErrorPageFilter.access$000(ErrorPageFilter.java:64)",
               "org.springframework.boot.web.servlet.support.ErrorPageFilter$1.doFilterInternal(ErrorPageFilter.java:101)",
               "org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:117)",
               "org.springframework.boot.web.servlet.support.ErrorPageFilter.doFilter(ErrorPageFilter.java:119)",
               "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)",
               "org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)",
               "org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)",
               "org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)",
               "org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:540)",
               "org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)",
               "org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)",
               "org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)",
               "org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:359)",
               "org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)",
               "org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)",
               "org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:889)",
               "org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1735)",
               "org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)",
               "org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)",
               "org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)",
               "org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)",
               "java.base/java.lang.Thread.run(Thread.java:831)"
            ],
            class: "java.lang.NullPointerException"
         }
      } 

      Expected result: 400 error 

      {
         statusCode: 409,
         reasonPhrase: "Conflict",
         faultMessage: "No models found for scenario [1652.also_clicked2] to fulfill the request. Cause: [also_clicked:CLICKED:EMPTY_CONTEXT]. Provided contexts: [].",
         faultDetail: {
            message: "No models found for scenario [also_clicked2] to fulfill the request. Cause: [also_clicked:EMPTY_CONTEXT]. No context provided.",
            scenarioReferenceCode: "also_clicked2",
            inputTypeId: 49,
            outputTypeId: 49,
            contextItems: null,
            whySkipped: [
               {
                  modelReferenceCode: "also_clicked",
                  reason: "EMPTY_CONTEXT"
               }
            ] 

       

       

      Designs

        Attachments

          Activity

            People

              Unassigned Unassigned
              damian.korostynski@ibexa.co Damian Korostyński
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: