From cdd148b4d1bd30cf88e082d460e00a30c2613fb4 Mon Sep 17 00:00:00 2001 From: psychedelicious <4822129+psychedelicious@users.noreply.github.com> Date: Fri, 8 Nov 2024 08:01:44 +1000 Subject: [PATCH] feat(ui): add toast for graph building errors --- .../listeners/enqueueRequestedLinear.ts | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/enqueueRequestedLinear.ts b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/enqueueRequestedLinear.ts index 8cc52045b0..e4e00daea2 100644 --- a/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/enqueueRequestedLinear.ts +++ b/invokeai/frontend/web/src/app/store/middleware/listenerMiddleware/listeners/enqueueRequestedLinear.ts @@ -1,6 +1,7 @@ import { logger } from 'app/logging/logger'; import { enqueueRequested } from 'app/store/actions'; import type { AppStartListening } from 'app/store/middleware/listenerMiddleware'; +import { extractMessageFromAssertionError } from 'common/util/extractMessageFromAssertionError'; import type { Result } from 'common/util/result'; import { withResult, withResultAsync } from 'common/util/result'; import { $canvasManager } from 'features/controlLayers/store/ephemeral'; @@ -9,10 +10,11 @@ import { buildFLUXGraph } from 'features/nodes/util/graph/generation/buildFLUXGr import { buildSD1Graph } from 'features/nodes/util/graph/generation/buildSD1Graph'; import { buildSDXLGraph } from 'features/nodes/util/graph/generation/buildSDXLGraph'; import type { Graph } from 'features/nodes/util/graph/generation/Graph'; +import { toast } from 'features/toast/toast'; import { serializeError } from 'serialize-error'; import { queueApi } from 'services/api/endpoints/queue'; import type { Invocation } from 'services/api/types'; -import { assert } from 'tsafe'; +import { assert, AssertionError } from 'tsafe'; import type { JsonObject } from 'type-fest'; const log = logger('generation'); @@ -57,7 +59,17 @@ export const addEnqueueRequestedLinear = (startAppListening: AppStartListening) } if (buildGraphResult.isErr()) { - log.error({ error: serializeError(buildGraphResult.error) }, 'Failed to build graph'); + let description: string | null = null; + if (buildGraphResult.error instanceof AssertionError) { + description = extractMessageFromAssertionError(buildGraphResult.error); + } + const error = serializeError(buildGraphResult.error); + log.error({ error }, 'Failed to build graph'); + toast({ + status: 'error', + title: 'Failed to build graph', + description, + }); return; }