fix: improve message sending logic and handle range download errors in translation service

This commit is contained in:
zjs81
2026-04-02 19:52:43 -07:00
parent 2b826757cb
commit 01ad8471cc
3 changed files with 13 additions and 15 deletions
+6 -2
View File
@@ -317,8 +317,12 @@ class TranslationService extends ChangeNotifier {
final request = http.Request('GET', uri);
request.headers['Range'] = 'bytes=$start-$end';
final response = await client.send(request);
if (response.statusCode != 206 && response.statusCode != 200) {
throw StateError('Range download failed: HTTP ${response.statusCode}');
if (response.statusCode != 206) {
await response.stream.drain<void>();
throw StateError(
'Range download failed: HTTP ${response.statusCode}'
'${response.statusCode == 200 ? ' (server ignored Range header)' : ''}',
);
}
final trackedStream = _trackDownloadProgress(response.stream);
await _fileStore.writeModelBytes(