org.springframework.web.flow.NoMatchingTransitionException: No transition was matched to the event(s) signaled by the 1 action(s) that executed in this action state 'bind' of flow 'submitForApprovalFlow'; transitions must be defined to handle action result outcomes -- possible flow configuration error? Note: the eventIds signaled were: 'array['success']', while the supported set of transitional criteria for this action state is 'array['success', 'error']'

Spring JIRA | Jim Newsham | 1 decade ago
  1. 0

    This is reported against SWF Preview 3. When a subflow completes successfully and its returned event does not match up with the transitions defined in the <subflow-state> declaration of the parent, the error message accompanying the stack trace incorrectly states that the NSTE happened in the subflow. The error message is furthermore confusing because it contradictorily states that the transition doesn't exist, and goes on to list the signaled eventId and transitional criteria, which DO match up. In this example, "submitForApprovalFlow" is the subflow (which has already completed successfully according to the debug log): org.springframework.web.flow.NoMatchingTransitionException: No transition was matched to the event(s) signaled by the 1 action(s) that executed in this action state 'bind' of flow 'submitForApprovalFlow'; transitions must be defined to handle action result outcomes -- possible flow configuration error? Note: the eventIds signaled were: 'array['success']', while the supported set of transitional criteria for this action state is 'array['success', 'error']' at org.springframework.web.flow.ActionState.doEnter(ActionState.java:382) at org.springframework.web.flow.State.enter(State.java:164) at org.springframework.web.flow.Transition.execute(Transition.java:269) at org.springframework.web.flow.TransitionableState.onEvent(TransitionableState.java:202) at org.springframework.web.flow.execution.impl.FlowExecutionImpl.signalEvent(FlowExecutionImpl.java:317) at org.springframework.web.flow.execution.FlowExecutionManager.onEvent(FlowExecutionManager.java:289) at org.springframework.web.flow.execution.FlowExecutionManager.onEvent(FlowExecutionManager.java:245) at org.springframework.web.flow.execution.servlet.ServletFlowExecutionManager.handle(ServletFlowExecutionManager.java:77) at org.springframework.web.flow.mvc.FlowController.handleRequestInternal(FlowController.java:137) at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:128) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:684) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:625) at org.springframework.web.servlet.FrameworkServlet.serviceWrapper(FrameworkServlet.java:386) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:355) at javax.servlet.http.HttpServlet.service(HttpServlet.java:152)

    Spring JIRA | 1 decade ago | Jim Newsham
    org.springframework.web.flow.NoMatchingTransitionException: No transition was matched to the event(s) signaled by the 1 action(s) that executed in this action state 'bind' of flow 'submitForApprovalFlow'; transitions must be defined to handle action result outcomes -- possible flow configuration error? Note: the eventIds signaled were: 'array['success']', while the supported set of transitional criteria for this action state is 'array['success', 'error']'
  2. 0

    This is reported against SWF Preview 3. When a subflow completes successfully and its returned event does not match up with the transitions defined in the <subflow-state> declaration of the parent, the error message accompanying the stack trace incorrectly states that the NSTE happened in the subflow. The error message is furthermore confusing because it contradictorily states that the transition doesn't exist, and goes on to list the signaled eventId and transitional criteria, which DO match up. In this example, "submitForApprovalFlow" is the subflow (which has already completed successfully according to the debug log): org.springframework.web.flow.NoMatchingTransitionException: No transition was matched to the event(s) signaled by the 1 action(s) that executed in this action state 'bind' of flow 'submitForApprovalFlow'; transitions must be defined to handle action result outcomes -- possible flow configuration error? Note: the eventIds signaled were: 'array['success']', while the supported set of transitional criteria for this action state is 'array['success', 'error']' at org.springframework.web.flow.ActionState.doEnter(ActionState.java:382) at org.springframework.web.flow.State.enter(State.java:164) at org.springframework.web.flow.Transition.execute(Transition.java:269) at org.springframework.web.flow.TransitionableState.onEvent(TransitionableState.java:202) at org.springframework.web.flow.execution.impl.FlowExecutionImpl.signalEvent(FlowExecutionImpl.java:317) at org.springframework.web.flow.execution.FlowExecutionManager.onEvent(FlowExecutionManager.java:289) at org.springframework.web.flow.execution.FlowExecutionManager.onEvent(FlowExecutionManager.java:245) at org.springframework.web.flow.execution.servlet.ServletFlowExecutionManager.handle(ServletFlowExecutionManager.java:77) at org.springframework.web.flow.mvc.FlowController.handleRequestInternal(FlowController.java:137) at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:128) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:684) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:625) at org.springframework.web.servlet.FrameworkServlet.serviceWrapper(FrameworkServlet.java:386) at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:355) at javax.servlet.http.HttpServlet.service(HttpServlet.java:152)

    Spring JIRA | 1 decade ago | Jim Newsham
    org.springframework.web.flow.NoMatchingTransitionException: No transition was matched to the event(s) signaled by the 1 action(s) that executed in this action state 'bind' of flow 'submitForApprovalFlow'; transitions must be defined to handle action result outcomes -- possible flow configuration error? Note: the eventIds signaled were: 'array['success']', while the supported set of transitional criteria for this action state is 'array['success', 'error']'

    Root Cause Analysis

    1. org.springframework.web.flow.NoMatchingTransitionException

      No transition was matched to the event(s) signaled by the 1 action(s) that executed in this action state 'bind' of flow 'submitForApprovalFlow'; transitions must be defined to handle action result outcomes -- possible flow configuration error? Note: the eventIds signaled were: 'array['success']', while the supported set of transitional criteria for this action state is 'array['success', 'error']'

      at org.springframework.web.flow.ActionState.doEnter()
    2. org.springframework.web
      FlowController.handleRequestInternal
      1. org.springframework.web.flow.ActionState.doEnter(ActionState.java:382)
      2. org.springframework.web.flow.State.enter(State.java:164)
      3. org.springframework.web.flow.Transition.execute(Transition.java:269)
      4. org.springframework.web.flow.TransitionableState.onEvent(TransitionableState.java:202)
      5. org.springframework.web.flow.execution.impl.FlowExecutionImpl.signalEvent(FlowExecutionImpl.java:317)
      6. org.springframework.web.flow.execution.FlowExecutionManager.onEvent(FlowExecutionManager.java:289)
      7. org.springframework.web.flow.execution.FlowExecutionManager.onEvent(FlowExecutionManager.java:245)
      8. org.springframework.web.flow.execution.servlet.ServletFlowExecutionManager.handle(ServletFlowExecutionManager.java:77)
      9. org.springframework.web.flow.mvc.FlowController.handleRequestInternal(FlowController.java:137)
      9 frames
    3. Spring MVC
      FrameworkServlet.doPost
      1. org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:128)
      2. org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:44)
      3. org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:684)
      4. org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:625)
      5. org.springframework.web.servlet.FrameworkServlet.serviceWrapper(FrameworkServlet.java:386)
      6. org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:355)
      6 frames
    4. JavaServlet
      HttpServlet.service
      1. javax.servlet.http.HttpServlet.service(HttpServlet.java:152)
      1 frame