From 7a6c63cb852317e92fb8e3b9cbc10bce4ca75a35 Mon Sep 17 00:00:00 2001 From: Dan Date: Mon, 6 Feb 2023 12:06:37 -0500 Subject: [PATCH 1/4] When catching non-jinja errors from Jinja, raise a good error message, and make a best effort at tracking down the line number and error line if possible. --- .../routes/tasks_controller.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/spiffworkflow-backend/src/spiffworkflow_backend/routes/tasks_controller.py b/spiffworkflow-backend/src/spiffworkflow_backend/routes/tasks_controller.py index 79cd84249..f7a6e57e2 100644 --- a/spiffworkflow-backend/src/spiffworkflow_backend/routes/tasks_controller.py +++ b/spiffworkflow-backend/src/spiffworkflow_backend/routes/tasks_controller.py @@ -2,6 +2,7 @@ import json import os import uuid +from sys import exc_info from typing import Any from typing import Dict from typing import Optional @@ -562,6 +563,20 @@ def _render_jinja_template(unprocessed_template: str, spiff_task: SpiffTask) -> "Jinja2 template errors can happen when trying to displaying task data" ) raise wfe from template_error + except Exception as error: + type, value, tb = exc_info() + wfe = WorkflowTaskException( + str(error), task=spiff_task, exception=error + ) + while tb: + if tb.tb_frame.f_code.co_filename == '