mirror of
https://github.com/imputnet/cobalt.git
synced 2025-06-27 17:08:28 +00:00
web/workers/fetch: catch network-related errors & retry 3 times
previously all network issues showed a "worker crashed" error, which people misinterpreted all the time, and reasonably so
This commit is contained in:
parent
2f5304f479
commit
77e78d55fc
@ -7,6 +7,7 @@
|
||||
"fetch.no_file_reader": "couldn't write a file to cache",
|
||||
"fetch.empty_tunnel": "file tunnel is empty, try again in a few minutes",
|
||||
"fetch.corrupted_file": "file wasn't downloaded fully, try again",
|
||||
"fetch.network_error": "downloading was interrupted by a network issue",
|
||||
|
||||
"ffmpeg.probe_failed": "couldn't probe this file, it may be unsupported or corrupted",
|
||||
"ffmpeg.out_of_memory": "not enough available memory, can't continue",
|
||||
|
@ -1,5 +1,10 @@
|
||||
import * as Storage from "$lib/storage";
|
||||
|
||||
const networkErrors = [
|
||||
"TypeError: Failed to fetch",
|
||||
"TypeError: network error",
|
||||
];
|
||||
|
||||
let attempts = 0;
|
||||
|
||||
const fetchFile = async (url: string) => {
|
||||
@ -83,6 +88,10 @@ const fetchFile = async (url: string) => {
|
||||
}
|
||||
});
|
||||
} catch (e) {
|
||||
// retry several times if the error is network-related
|
||||
if (networkErrors.includes(String(e))) {
|
||||
return error("queue.fetch.network_error");
|
||||
}
|
||||
console.error("error from the fetch worker:");
|
||||
console.error(e);
|
||||
return error("queue.fetch.crashed", false);
|
||||
|
Loading…
Reference in New Issue
Block a user