fix: Display readable error when manual executions contains large payload (#8834)

This commit is contained in:
Omar Ajoue 2024-03-08 12:23:27 +00:00 committed by GitHub
parent 76fe960a76
commit 261b9c73d6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 20 additions and 7 deletions

View file

@ -1951,6 +1951,7 @@
"workflowPreview.showError.previewError.title": "Preview error",
"workflowRun.noActiveConnectionToTheServer": "Lost connection to the server",
"workflowRun.showError.title": "Problem running workflow",
"workflowRun.showError.payloadTooLarge": "Please execute the whole workflow, rather than just the node. (Existing execution data is too large.)",
"workflowRun.showMessage.message": "Please fix them before executing",
"workflowRun.showMessage.title": "Workflow has issues",
"workflowSettings.callerIds": "IDs of workflows that can call this one",

View file

@ -82,6 +82,8 @@ import { useNodeTypesStore } from '@/stores/nodeTypes.store';
import { useUsersStore } from '@/stores/users.store';
import { useSettingsStore } from '@/stores/settings.store';
import { getCredentialOnlyNodeTypeName } from '@/utils/credentialOnlyNodes';
import { ResponseError } from '@/utils/apiUtils';
import { i18n } from '@/plugins/i18n';
const defaults: Omit<IWorkflowDb, 'id'> & { settings: NonNullable<IWorkflowDb['settings']> } = {
name: '',
@ -1338,12 +1340,22 @@ export const useWorkflowsStore = defineStore(STORES.WORKFLOWS, {
async runWorkflow(startRunData: IStartRunData): Promise<IExecutionPushResponse> {
const rootStore = useRootStore();
return await makeRestApiRequest(
rootStore.getRestApiContext,
'POST',
'/workflows/run',
startRunData as unknown as IDataObject,
);
try {
return await makeRestApiRequest(
rootStore.getRestApiContext,
'POST',
'/workflows/run',
startRunData as unknown as IDataObject,
);
} catch (error) {
if (error.response?.status === 413) {
throw new ResponseError(i18n.baseText('workflowRun.showError.payloadTooLarge'), {
errorCode: 413,
httpStatusCode: 413,
});
}
throw error;
}
},
async removeTestWebhook(workflowId: string): Promise<boolean> {

View file

@ -6,7 +6,7 @@ import { parse } from 'flatted';
export const NO_NETWORK_ERROR_CODE = 999;
class ResponseError extends Error {
export class ResponseError extends Error {
// The HTTP status code of response
httpStatusCode?: number;