public Map<String, Object> generateRuntimeValuesMap(
      long timestamp, Map<String, Object> formValues) {

    BackendFormRenderingContext context = contextManager.getContext(timestamp);

    if (context != null) {

      FormDefinition form = context.getRenderingContext().getRootForm();

      if (isValid(form)) {
        contextManager.removeContext(timestamp);
        return getOutputValues(
            formValuesProcessor.writeFormValues(form, formValues, context.getFormData(), context),
            form);
      }
    }
    throw new IllegalArgumentException(
        "Unable read form values for context '" + timestamp + "'. Form Values: " + formValues);
  }