From fac41fd7001a9dbfc72757f75dfc3830ac20c344 Mon Sep 17 00:00:00 2001 From: Ruben Fiszel Date: Thu, 17 Oct 2024 01:07:56 +0200 Subject: [PATCH] fix: fix script persistence in url + add support for extra error args in python --- backend/windmill-worker/src/python_executor.rs | 5 ++++- frontend/src/lib/components/DisplayResult.svelte | 5 +++++ frontend/src/lib/components/ScriptBuilder.svelte | 2 +- frontend/src/routes/(root)/(logged)/scripts/add/+page.svelte | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) diff --git a/backend/windmill-worker/src/python_executor.rs b/backend/windmill-worker/src/python_executor.rs index df94b75964..e1d9c391d6 100644 --- a/backend/windmill-worker/src/python_executor.rs +++ b/backend/windmill-worker/src/python_executor.rs @@ -498,7 +498,10 @@ except BaseException as e: exc_type, exc_value, exc_traceback = sys.exc_info() tb = traceback.format_tb(exc_traceback) with open(result_json, 'w') as f: - err = {{ "message": str(e), "name": e.__class__.__name__, "stack": '\n'.join(tb[1:]) }} + err = {{ "message": str(e), "name": e.__class__.__name__, "stack": '\n'.join(tb[1:]) }} + extra = e.__dict__ + if extra and len(extra) > 0: + err['extra'] = extra flow_node_id = os.environ.get('WM_FLOW_STEP_ID') if flow_node_id: err['step_id'] = flow_node_id diff --git a/frontend/src/lib/components/DisplayResult.svelte b/frontend/src/lib/components/DisplayResult.svelte index fc6dcfcb5f..b98263b002 100644 --- a/frontend/src/lib/components/DisplayResult.svelte +++ b/frontend/src/lib/components/DisplayResult.svelte @@ -559,6 +559,11 @@
{result.error.stack ?? ''}
+ {#if result.error?.extra} +
{JSON.stringify(result.error.extra, null, 4)}
+ {/if} {#if language === 'bun'} diff --git a/frontend/src/lib/components/ScriptBuilder.svelte b/frontend/src/lib/components/ScriptBuilder.svelte index d881dfd537..80e0292924 100644 --- a/frontend/src/lib/components/ScriptBuilder.svelte +++ b/frontend/src/lib/components/ScriptBuilder.svelte @@ -197,7 +197,7 @@ } $: !disableHistoryChange && - replaceStateFn('#' + encodeState({ script, primarySchedule: $primaryScheduleStore })) + replaceStateFn('#' + encodeState({ ...script, primarySchedule: $primaryScheduleStore })) if (script.content == '') { initContent(script.language, script.kind, template) diff --git a/frontend/src/routes/(root)/(logged)/scripts/add/+page.svelte b/frontend/src/routes/(root)/(logged)/scripts/add/+page.svelte index ebfc381c0a..c4c8de15bf 100644 --- a/frontend/src/routes/(root)/(logged)/scripts/add/+page.svelte +++ b/frontend/src/routes/(root)/(logged)/scripts/add/+page.svelte @@ -39,7 +39,7 @@ return decoded } catch (e) { console.error('Error decoding state', e) - return defaultScript + return defaultScript() } }