diff --git a/render_machine/actions/exit_with_error.py b/render_machine/actions/exit_with_error.py index 0179734..b9683ea 100644 --- a/render_machine/actions/exit_with_error.py +++ b/render_machine/actions/exit_with_error.py @@ -3,6 +3,7 @@ from plain2code_console import console from render_machine.actions.base_action import BaseAction from render_machine.render_context import RenderContext +from render_machine.render_types import RenderError class ExitWithError(BaseAction): @@ -24,4 +25,9 @@ def execute(self, render_context: RenderContext, previous_action_payload: Any | if render_context.run_state.render_id is not None: console.info(f"Render ID: {render_context.run_state.render_id}") - return self.SUCCESSFUL_OUTCOME, previous_action_payload + return ( + self.SUCCESSFUL_OUTCOME, + RenderError.encode( + message=render_context.last_error_message or "Unknown error", + ).to_payload(), + ) diff --git a/render_machine/code_renderer.py b/render_machine/code_renderer.py index 7869012..b6b5c74 100644 --- a/render_machine/code_renderer.py +++ b/render_machine/code_renderer.py @@ -58,8 +58,6 @@ def run(self): ) previous_state = deepcopy(self.render_context.state) self.render_context.script_execution_history.should_update_script_outputs = False - # Reset error message at start of each iteration to prevent stale data - self.render_context.last_error_message = None outcome, previous_action_payload = self.action_map[self.render_context.state].execute( self.render_context, previous_action_payload diff --git a/render_machine/render_context.py b/render_machine/render_context.py index e4fb084..8541025 100644 --- a/render_machine/render_context.py +++ b/render_machine/render_context.py @@ -443,7 +443,7 @@ def start_fixing_conformance_tests(self): self.conformance_tests_running_context.conformance_tests_render_attempts >= MAX_CONFORMANCE_TEST_RERENDER_ATTEMPTS ): - error_msg = f"We've already tried to fix the issue by recreating the conformance tests but tests still fail. Please fix the issues manually. FRID: {self.frid_context.frid}, Render ID: {self.run_state.render_id}" + error_msg = f"The renderer was unable to produce an implementation that passes conformance tests for functionality '{self.frid_context.frid}' after many attempts. Please review and rewrite the specification. (Render ID: {self.run_state.render_id})" self.dispatch_error(error_msg) else: self.conformance_tests_running_context.regenerating_conformance_tests = True