diff --git a/frontend/src/pages/[user]/[project]/versions/new.vue b/frontend/src/pages/[user]/[project]/versions/new.vue index 6c4abdf5c..d51d4366a 100644 --- a/frontend/src/pages/[user]/[project]/versions/new.vue +++ b/frontend/src/pages/[user]/[project]/versions/new.vue @@ -148,6 +148,7 @@ const changelogRules = [requiredIf()(() => selectedStep.value === "changelog")]; const v = useVuelidate(); +const timeout = ref(30_000); async function createPendingVersion() { selectedPlatforms.value.splice(0); @@ -172,9 +173,16 @@ async function createPendingVersion() { }) ); - pendingVersion.value = await useInternalApi(`versions/version/${props.project.id}/upload`, "post", formData, { timeout: 45000 }).catch( - (e) => handleRequestError(e) - ); + pendingVersion.value = await useInternalApi(`versions/version/${props.project.id}/upload`, "post", formData, { + timeout: timeout.value, + }).catch((e) => { + if (e.code === "ECONNABORTED") { + notification.error("The request timed out, please try again."); + timeout.value = timeout.value * 2; + } else { + handleRequestError(e); + } + }); loading.create = false; if (pendingVersion.value && currentChannel.value) {