public RunResponse start(
      @NotNull String workflowId, @NotNull String version, @NotNull RunRequest runRequest) {
    WorkflowDefinition definition = workflowDao.getWorkflowDefinition(workflowId, version);

    validateRequest(version, definition, runRequest);

    RunProperties runProperties =
        RunProperties.from(
            Checks.notNull(
                definition.getPropertiesSnapshot(),
                "property snapshot cannot be null for workflow: " + workflowId));
    // create and initiate a new instance with overrides and param evaluation
    WorkflowInstance instance =
        workflowHelper.createWorkflowInstance(
            definition.getWorkflow(),
            definition.getInternalId(),
            definition.getMetadata().getWorkflowVersionId(),
            runProperties,
            runRequest);
    RunStrategy runStrategy = definition.getRunStrategyOrDefault();
    int ret = runStrategyDao.startWithRunStrategy(instance, runStrategy);
    RunResponse response = RunResponse.from(instance, ret);
    LOG.info("Created a workflow instance with response {}", response);
    return response;
  }
@Test
  public void testStartWithInvalidTriggers() {
    Stream.of(new SignalInitiator(), new TimeInitiator())
        .forEach(
            initiator -> {
              RunRequest request =
                  RunRequest.builder()
                      .initiator(initiator)
                      .currentPolicy(RunPolicy.START_FRESH_NEW_RUN)
                      .build();
              definition.setIsActive(false);
              AssertHelper.assertThrows(
                  "cannot trigger an inactive workflow",
                  IllegalArgumentException.class,
                  "Triggered workflow definition for workflow",
                  () -> actionHandler.start("sample-minimal-wf", "active", request));

              definition.setIsActive(true);
              AssertHelper.assertThrows(
                  "cannot trigger a workflow without trigger uuids",
                  MaestroResourceConflictException.class,
                  "Invalid trigger initiator due to mismatch trigger uuid",
                  () -> actionHandler.start("sample-minimal-wf", "active", request));
            });
  }