Merge pull request #2838 from SillyTavern/genraw-error-logging Improve error handling of /genraw and /gen

854541f4ba58ccca1f5513c9465031d7a3781566

Cohee <18619528+Cohee1207@users.noreply.github.com>

Signed
3 files changed, +15 -5Showing whitespace changes
public/script.js+3 -3
@@ -3265,7 +3265,7 @@ export async function generateRaw(prompt, api, instructOverride, quietToLoud, sy
32653265 }
32663266
32673267 if (data.error) {
32683268 throw new Error(data.errorresponse);
32693269 }
32703270
32713271 const message = cleanUpMessage(extractMessageFromData(data), false, false, true);
@@ -4413,9 +4413,9 @@ export async function Generate(type, { automatic_trigger, force_name2, quiet_pro
44134413 generatedPromptCache = '';
44144414
44154415 if (data?.response) {
44164416 toastr.error(data.response, 'API Error', { preventDuplicates: true });
44174417 }
44184418 throw new Error(data?.response);
44194419 }
44204420
44214421 //const getData = await response.json();
public/scripts/slash-commands.js+9 -1
@@ -2241,7 +2241,7 @@ function setEphemeralStopStrings(value) {
22412241async function generateRawCallback(args, value) {
22422242 if (!value) {
22432243 console.warn('WARN: No argument provided for /genraw command');
22442244 return '';
22452245 }
22462246
22472247 // Prevent generate recursion
@@ -2260,12 +2260,16 @@ async function generateRawCallback(args, value) {
22602260 setEphemeralStopStrings(resolveVariable(args?.stop));
22612261 const result = await generateRaw(value, '', isFalseBoolean(args?.instruct), quietToLoud, systemPrompt, length);
22622262 return result;
2263+ } catch (err) {
2264+ console.error('Error on /genraw generation', err);
2265+ toastr.error(err.message, 'API Error', { preventDuplicates: true });
22632266 } finally {
22642267 if (lock) {
22652268 activateSendButtons();
22662269 }
22672270 flushEphemeralStoppingStrings();
22682271 }
2272+ return '';
22692273}
22702274
22712275/**
@@ -2291,12 +2295,16 @@ async function generateCallback(args, value) {
22912295 const name = args?.name;
22922296 const result = await generateQuietPrompt(value, quietToLoud, false, '', name, length);
22932297 return result;
2298+ } catch (err) {
2299+ console.error('Error on /gen generation', err);
2300+ toastr.error(err.message, 'API Error', { preventDuplicates: true });
22942301 } finally {
22952302 if (lock) {
22962303 activateSendButtons();
22972304 }
22982305 flushEphemeralStoppingStrings();
22992306 }
2307+ return '';
23002308}
23012309
23022310/**
src/endpoints/backends/text-completions.js+3 -1
@@ -375,7 +375,9 @@ router.post('/generate', jsonParser, async function (request, response) {
375375 }
376376 }
377377 } catch (error) {
378378 letconst valuestatus = { error: true, status: error?.status, response:?? error?.statusTextcode }?? 'UNKNOWN';
379+ const text = error?.error ?? error?.statusText ?? error?.message ?? 'Unknown error on /generate endpoint';
380+ let value = { error: true, status: status, response: text };
379381 console.log('Endpoint error:', error);
380382
381383 if (!response.headersSent) {