diff --git a/backend/windmill-worker/src/ruby_executor.rs b/backend/windmill-worker/src/ruby_executor.rs index 4dbc5bcf8a..cd25663889 100644 --- a/backend/windmill-worker/src/ruby_executor.rs +++ b/backend/windmill-worker/src/ruby_executor.rs @@ -891,9 +891,23 @@ fn wrap(inner_content: &str) -> Result { require 'json' a = JSON.parse(File.read("args.json")) -res = main(SPREAD) -File.open("result.json", "w") do |file| - file.write(JSON.generate(res)) + +begin + res = main(SPREAD) + File.open("result.json", "w") do |file| + file.write(JSON.generate(res)) + end + +rescue => e + error = { + name: e.class.name, + stack: e.full_message, + message: e.message + } + File.open("result.json", "w") do |file| + file.write(JSON.generate(error)) + end + raise end "# .replace("INNER_CONTENT", inner_content)