fix(hermes): repair ariadne/409 #3

Closed
bstein wants to merge 1 commits from hermes-repair/409 into master
Owner

Hermes repair proposal for incident ariadne/409

Incident: ariadne/409
File: ariadne/utils/errors.py
Analysis: Jenkins build 409 failed only because test_safe_error_detail_http_status_json expected the JSON errorMessage value, but safe_error_detail returned only "http 400". The current payload lookup accepts error and message but omits errorMessage; the adjacent JSON-string and text cases passed. This is a localized source regression in ariadne/utils/errors.py.
Rationale: Include the errorMessage JSON convention while preserving the existing precedence of error and message. This one-line change makes the failing HTTP 400 JSON payload produce the expected safe detail without broadening error handling or adding dependencies.

Proposed by Hermes; validated and pushed by Ariadne; requires human review — no automatic merge.

## Hermes repair proposal for incident ariadne/409 **Incident:** ariadne/409 **File:** `ariadne/utils/errors.py` **Analysis:** Jenkins build 409 failed only because test_safe_error_detail_http_status_json expected the JSON errorMessage value, but safe_error_detail returned only "http 400". The current payload lookup accepts error and message but omits errorMessage; the adjacent JSON-string and text cases passed. This is a localized source regression in ariadne/utils/errors.py. **Rationale:** Include the errorMessage JSON convention while preserving the existing precedence of error and message. This one-line change makes the failing HTTP 400 JSON payload produce the expected safe detail without broadening error handling or adding dependencies. Proposed by Hermes; validated and pushed by Ariadne; requires human review — no automatic merge.
bstein added 1 commit 2026-08-06 05:16:14 +00:00
Author
Owner

Closing — the defect this repairs was deliberately seeded, and has been reverted directly.

This pull request is correct and it is the proof that autonomous source repair works on a real service repository: Hermes chose ariadne/utils/errors.py, a file that appears nowhere in the build console, reached only by reading the failing test and following its imports. No candidate path was pinned.

It is being closed rather than merged for two reasons, both worth recording.

First, the patch is correct for the failing test but is not a faithful restoration. The original was errorMessage or error or message; this proposes error or message or errorMessage. For a payload carrying both keys the precedence differs. That is a good patch, not an identical one — a useful illustration that a passing test does not prove behavioural equivalence, and exactly why nothing here merges without review.

Second, Ariadne's duplicate guard refuses a new proposal while a hermes-repair/* pull request is open, so leaving this open would block future triage on this repository.

The seeded defect has been reverted so master matches its original behaviour exactly.

**Closing — the defect this repairs was deliberately seeded, and has been reverted directly.** This pull request is correct and it is the proof that autonomous source repair works on a real service repository: Hermes chose `ariadne/utils/errors.py`, a file that appears nowhere in the build console, reached only by reading the failing test and following its imports. No candidate path was pinned. It is being closed rather than merged for two reasons, both worth recording. First, the patch is correct for the failing test but is not a faithful restoration. The original was `errorMessage or error or message`; this proposes `error or message or errorMessage`. For a payload carrying both keys the precedence differs. That is a good patch, not an identical one — a useful illustration that a passing test does not prove behavioural equivalence, and exactly why nothing here merges without review. Second, Ariadne's duplicate guard refuses a new proposal while a `hermes-repair/*` pull request is open, so leaving this open would block future triage on this repository. The seeded defect has been reverted so master matches its original behaviour exactly.
bstein closed this pull request 2026-08-06 08:09:54 +00:00

Pull request closed

Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: bstein/ariadne#3
No description provided.