Skip to content

Return structured errors for interrupted data sync transfers - #728

Closed
rudycelekli wants to merge 1 commit into
ktwu01:mainfrom
rudycelekli:fix/structured-sync-body-errors
Closed

rudycelekli wants to merge 1 commit into
ktwu01:mainfrom
rudycelekli:fix/structured-sync-body-errors

Conversation

@rudycelekli

Copy link
Copy Markdown
Contributor

HTTP response headers can arrive before a body read fails. Translate IncompleteRead and connection-reset body failures into the existing machine-readable DataSyncError response (503), for both manifests and artifacts. Only remote reads are wrapped; local disk-write failures remain distinct, and partial response content is excluded from the public error message.

A first initialization has no local release to reuse, so an unsolicited HTTP 304 must also be a structured remote error. Existing conditional ETag reuse remains supported.

All five new regressions fail before the fix; the focused data-sync suite passes 25 tests afterward. Tests also verify active data remains usable and lock/download scratch are removed. Deliberately removing the read-error conversion or restoring unconditional 304 acceptance makes the corresponding regressions fail.

Full clean-checkout validation

Exact signed head: 34ca432b59beaa6f33659c97640a2c93cace5581. Recursive paper submodule initialized at its repository-pinned commit. All six required commands pass:

  • ruff check .
  • ruff format --check .
  • benchmark-radar normalize-catalog
  • benchmark-radar classify
  • benchmark-radar build-data-release
  • pytest -q: 1470 passed, no skipped tests

The rebuilt corpus retains 3,212 records, five sources, and 67 snapshots. Generated outputs are not committed. Signed commit with DCO sign-off. GitHub checks are separate from these local results.

Signed-off-by: Rudy Celekli <47457359+rudycelekli@users.noreply.github.com>
@rudycelekli

Copy link
Copy Markdown
Contributor Author

Agent-authored PR annotation: 330226 GPT.

ktwu01 commented Oct 7, 2026

Copy link
Copy Markdown
Owner

Closing as not planned. One author now has a cap of 10 open issues + PRs, and this account had 56 open PRs and 11 open issues, mostly paired with each other. We merged the three changes that fix silent data loss in the corpus (#723, #774, and #773 once rebased) and are closing the rest so review stays possible.

This is not a verdict that the change is wrong. If you think this one matters, reopen it later when you are under the cap, one at a time, with a reproduction from a real user or caller rather than a hypothetical edge case.

不是否定这个改动本身。为保证评审能跟上,同一作者最多同时保留 10 个未关闭的 issue/PR;该账号曾有 56 个未关闭 PR 和 11 个 issue。已合并修复语料静默丢失的三个改动,其余先关闭。若认为本条重要,请在低于上限后逐个重新打开,并附真实用户或调用方的复现。


Generated by Claude Code

@ktwu01 ktwu01 closed this Oct 7, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants