Skip to content

Say which data update error row covers a download cut short - #145

Merged
jwrosewell merged 1 commit into
rcfrom
spec/download-cut-short
Nov 13, 2026
Merged

jwrosewell merged 1 commit into
rcfrom
spec/download-cut-short

Conversation

@jwrosewell

@jwrosewell jwrosewell commented Nov 13, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #144

The problem

The Errors section of the data updates feature has two rows for a request for new data that fails, and neither says which one covers a download that starts and is then cut short, for example when the connection is closed part way through the file. #144 sets this out. Read on its own, the first row's description, "Connecting to the data update URL failed", points a download cut short at the second row, "The data update URL gave no response", and the languages split between the two.

What the specification says

pipeline-specification/features/data-updates.md lines 481 to 483 at 88b8c0a:

These messages MUST also be consistent across languages to make life easier for 51Degrees support. They are the messages and levels of the .NET data update service, and each status is the one .NET reports.

So .NET decides the row. DataUpdateService.cs lines 1305 to 1326 at 8b3220b sends the request with SendAsync inside a try, and its catch throws the first row's message. That form of SendAsync "will complete once the entire response including content is read", in Microsoft's documentation, so a body cut short fails inside it and takes the first row. .NET writes the second row's message only when SendAsync returns no response at all.

What changed

Two descriptions in the Errors table, as #144 suggests, and nothing else. The levels, statuses and messages are unchanged.

Row Before After
First Connecting to the data update URL failed Connecting to the data update URL failed, or its response ended before the whole file arrived
Second The data update URL gave no response The request to the data update URL ended with no response and no error

What it means for each language

Python already reports a download cut short under the first row, as #144 shows. .NET does by definition. Node.js wrote the second row's message until 51degrees-node#94. Java, Go and Rust report it in a way that matches neither row, and each has its own issue: 51degrees-java#125, 51degrees-go#123 and 51degrees-rust#403. This change settles what each of them should give.

Checks

Documentation only, so there is no build. On the head, 3c61752, UTM link lint and Only rc into main passed. The file keeps LF line endings in the repository, as on rc, and the table keeps its column widths.

@jwrosewell
jwrosewell marked this pull request as ready for review November 13, 2026 23:05
@jwrosewell
jwrosewell merged commit c8128ca into rc Nov 13, 2026
2 checks passed
@jwrosewell
jwrosewell deleted the spec/download-cut-short branch November 13, 2026 23:05
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.

1 participant