From 109ea4008b5b35105a60adce73d33735b0a5d464 Mon Sep 17 00:00:00 2001 From: Cohee <18619528+Cohee1207@users.noreply.github.com> Date: Sun, 27 Aug 2023 13:31:14 +0300 Subject: [PATCH] Improve Horde request error detection --- public/scripts/horde.js | 12 +++++++++--- server.js | 11 +++++++++-- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/public/scripts/horde.js b/public/scripts/horde.js index 57d162d71..1c66e0621 100644 --- a/public/scripts/horde.js +++ b/public/scripts/horde.js @@ -117,12 +117,18 @@ async function generateHorde(prompt, params, signal) { }); if (!response.ok) { - const error = await response.json(); - callPopup(error.message, 'text'); - throw new Error('Horde generation failed: ' + error.message); + toastr.error(response.statusText, 'Horde generation failed'); + throw new Error(`Horde generation failed: ${response.statusText}`); } const responseJson = await response.json(); + + if (responseJson.error) { + const reason = responseJson.error?.message || 'Unknown error'; + toastr.error(reason, 'Horde generation failed'); + throw new Error(`Horde generation failed: ${reason}`); + } + const task_id = responseJson.id; let queue_position_first = null; console.log(`Horde task id = ${task_id}`); diff --git a/server.js b/server.js index 7ac683abd..e28d2acc1 100644 --- a/server.js +++ b/server.js @@ -4202,8 +4202,15 @@ app.post('/generate_horde', jsonParser, async (request, response) => { const data = await postAsync(url, args); return response.send(data); } catch (error) { - console.error(error); - return response.sendStatus(500); + console.log('Horde returned an error:', error.statusText); + + if (typeof error.text === 'function') { + const message = await error.text(); + console.log(message); + return response.send({ error: { message } }); + } else { + return response.send({ error: true }); + } } });