Skip to content
This repository was archived by the owner on Apr 8, 2026. It is now read-only.

Commit d9e6ba1

Browse files
committed
fix(download): improve error handling and support for partial downloads in game download functionality
1 parent 643bf1d commit d9e6ba1

1 file changed

Lines changed: 8 additions & 0 deletions

File tree

src/controllers/GameController.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -414,9 +414,16 @@ export class Games {
414414

415415
const fileRes = await fetch(link, { headers });
416416
if (!fileRes.ok) {
417+
console.error(`Error fetching file: ${fileRes.status} - ${fileRes.statusText}`);
417418
return res.status(fileRes.status).send({ message: 'Error fetching file' });
418419
}
419420

421+
// Ensure the server supports partial downloads if Range is requested
422+
if (req.headers.range && !fileRes.headers.get('accept-ranges')) {
423+
console.warn('Server does not support partial downloads');
424+
return res.status(416).send({ message: 'Requested range not satisfiable' });
425+
}
426+
420427
res.setHeader('Content-Disposition', `attachment; filename="${game.name}.zip"`);
421428
res.setHeader('Content-Type', fileRes.headers.get('content-type') || 'application/octet-stream');
422429

@@ -440,6 +447,7 @@ export class Games {
440447
res.end();
441448
}
442449
} catch (error) {
450+
console.error('Error in downloadGame:', error);
443451
handleError(res, error, 'Error downloading game');
444452
}
445453
}

0 commit comments

Comments
 (0)