From 9a5cf0cb036c7a928e059a04f1a7f4599819f6b4 Mon Sep 17 00:00:00 2001 From: Dennis Huebner Date: Wed, 23 Oct 2024 16:02:18 +0200 Subject: [PATCH] Show error message when uploading fails --- packages/filesystem/src/browser/file-upload-service.ts | 5 +++++ packages/filesystem/src/node/node-file-upload-service.ts | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/packages/filesystem/src/browser/file-upload-service.ts b/packages/filesystem/src/browser/file-upload-service.ts index 9447880b7daea..277ebb4837608 100644 --- a/packages/filesystem/src/browser/file-upload-service.ts +++ b/packages/filesystem/src/browser/file-upload-service.ts @@ -254,6 +254,7 @@ export class FileUploadService { } catch (error) { uploadSemaphore.cancel(); if (!isCancelled(error)) { + this.messageService.error(nls.localize('theia/filesystem/uploadFailed', 'An error occurred while uploading a file. {0}', error.message)); throw error; } } @@ -348,6 +349,10 @@ export class FileUploadService { unregister(); if (xhr.status === 200) { resolve(); + } else if (xhr.status === 500 && xhr.statusText !== xhr.response) { + // internal error with cause message + // see packages/filesystem/src/node/node-file-upload-service.ts + reject(new Error(`Internal server error: ${xhr.response}`)); } else { reject(new Error(`POST request failed: ${xhr.status} ${xhr.statusText}`)); } diff --git a/packages/filesystem/src/node/node-file-upload-service.ts b/packages/filesystem/src/node/node-file-upload-service.ts index efd063348ecde..9687ad761bd07 100644 --- a/packages/filesystem/src/node/node-file-upload-service.ts +++ b/packages/filesystem/src/node/node-file-upload-service.ts @@ -73,7 +73,13 @@ export class NodeFileUploadService implements BackendApplicationContribution { response.status(200).send(target); // ok } catch (error) { console.error(error); - response.sendStatus(500); // internal server error + if (error.message) { + // internal server error with error message as response + response.status(500).send(error.message); + } else { + // default internal server error + response.sendStatus(500); + } } }