throw exception on unparseable HTTP status in Curl backend#68
Merged
Conversation
Contributor
Author
Rebase: Throw exception on unparseable HTTP status in Curl backendBranch Diff: 3 files changed, 96 insertions(+), 2 deletions(-) Actions
CICI will be checked asynchronously. Automated by Kōan |
c2f546f to
8754dc0
Compare
toddr-bot
added a commit
that referenced
this pull request
Apr 6, 2026
Replace silent `warn` + continue with a structured exception when the async Curl backend encounters an unparseable HTTP status line. The old code would set reason to empty string and proceed, silently corrupting the response with no indication of failure. In an async pipeline, this is particularly dangerous since the caller cannot catch warnings. Exception propagates through the promise chain's rejection handler, which converts it to a 599/Internal Exception response consistent with the existing error handling pattern. Add comprehensive test suite covering valid responses, unparseable status lines, and edge cases.
e3e09df to
4f177fc
Compare
Contributor
Author
Squash: 3 commits → 1Branch Commit messageActions
Automated by Koan |
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.
What: Replace silent warning with structured exception when Curl backend receives an unparseable HTTP status line.
Why: The old code would silently corrupt responses by setting an empty reason and continuing to parse headers. In async pipelines, this silent failure is particularly dangerous since callers cannot catch warnings.
How: Throw
Net::ACME2::X->create('Generic', ...)exception (consistent with existing codebase pattern) instead of warning. Exception propagates through promise chain rejection handler (already in place). Addedt/Net-ACME2-Curl.twith 6 tests covering valid responses, unparseable status lines, and empty headers. All 295 tests pass.