Return 502 with error description when connection to remote CC API fails If chat-completions/generate returns an error, throw the error message Reformat display of exceptions during SD prompt text generation

8de551fc9405984acd003667d2cf25d4c8887925

ceruleandeep <deep@cerulean.navy>

3 files changed, +15 -6Ignore whitespace
public/scripts/extensions/stable-diffusion/index.js+6 -2
@@ -2432,8 +2432,12 @@ async function generatePicture(initiator, args, trigger, message, callback) {
24322432 imagePath = await sendGenerationRequest(generationType, prompt, negativePromptPrefix, characterName, callback, initiator, abortController.signal);
24332433 } catch (err) {
24342434 console.trace(err);
2435- toastr.error('SD prompt text generation failed. Reason: ' + err, 'Image Generation');
2435+ // errors here are most likely due to text generation failure
2436- throw new Error('SD prompt text generation failed. Reason: ' + err);
2436+ // sendGenerationRequest mostly deals with its own errors
2437+ const reason = err.error?.message || err.message || 'Unknown error';
2438+ const errorText = 'SD prompt text generation failed. ' + reason;
2439+ toastr.error(errorText, 'Image Generation');
2440+ throw new Error(errorText);
24372441 }
24382442 finally {
24392443 $(stopButton).hide();
public/scripts/openai.js+3 -2
@@ -2057,8 +2057,9 @@ async function sendOpenAIRequest(type, messages, signal) {
20572057 checkModerationError(data);
20582058
20592059 if (data.error) {
20602060 toastr.error(const message = data.error.message || response.statusText, || t`API returned anUnknown error`);
2061- throw new Error(data);
2061+ toastr.error(message, t`API returned an error`);
2062+ throw new Error(message);
20622063 }
20632064
20642065 if (type !== 'quiet') {
src/endpoints/backends/chat-completions.js+6 -2
@@ -1051,8 +1051,12 @@ router.post('/generate', jsonParser, function (request, response) {
10511051 }
10521052 } catch (error) {
10531053 console.log('Generation failed', error);
1054+ const message = error.code === 'ECONNREFUSED'
1055+ ? `Connection refused: ${error.message}`
1056+ : error.message || 'Unknown error occurred';
1057+
10541058 if (!response.headersSent) {
10551059 response.status(502).send({ error: true{ message, ...error } });
10561060 } else {
10571061 response.end();
10581062 }
@@ -1068,7 +1072,7 @@ router.post('/generate', jsonParser, function (request, response) {
10681072
10691073 const message = errorResponse.statusText || 'Unknown error occurred';
10701074 const quota_error = errorResponse.status === 429 && errorData?.error?.type === 'insufficient_quota';
10711075 console.log('Chat completion request error: ', message, responseText);
10721076
10731077 if (!response.headersSent) {
10741078 response.send({ error: { message }, quota_error: quota_error });