FIX Preserve lifecycle on result persistence failures - #2473
Merged
Roman Lutz (romanlutz) merged 6 commits intoAug 26, 2026
Merged
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 3772242b-0ee1-4ecd-a028-a38c91c17926
Persist completed attack results after teardown without making generic event observers fatal or creating duplicate error results. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 75013b84-0c8d-4ea4-9c4c-6c58381ac1a1
Capture failures from the existing error-result write and report them alongside attack failures without retrying ambiguous database commits. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 75013b84-0c8d-4ea4-9c4c-6c58381ac1a1
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 75013b84-0c8d-4ea4-9c4c-6c58381ac1a1
hannahwestra25
approved these changes
Aug 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Attack result persistence previously ran in a best-effort event handler. If the database write failed, the exception was ignored and the caller could receive a completed result even though no durable record existed for reporting or resume.
This change keeps generic lifecycle observers best-effort, enriches results during
ON_POST_EXECUTE, and persists completed results only after teardown succeeds. Persistence failures now propagate without creating a misleading secondERRORresult, while genuine execution or teardown failures continue to persist one accurateERRORresult and preserve the original exception.N/A
Tests and Documentation
JupyText was not applicable because no documentation notebooks changed.