diff --git a/js-packages/common-ui/src/lib/TabsPanel.svelte b/js-packages/common-ui/src/lib/TabsPanel.svelte
index 63bdc6a9e48..5915cc3d6b0 100644
--- a/js-packages/common-ui/src/lib/TabsPanel.svelte
+++ b/js-packages/common-ui/src/lib/TabsPanel.svelte
@@ -77,7 +77,7 @@
(without `min-h-0` flex children refuse to shrink below their content size, so
any inner overflow would push the panel taller than the Pane). -->
- {#each tabs as { id, panel: TabComponent, keepAlive }}
+ {#each tabs as { id, panel: TabComponent, keepAlive } (id)}
{#snippet tab()}
{/snippet}
diff --git a/js-packages/web-console/src/lib/compositions/pipelines/useTryPipeline.ts b/js-packages/web-console/src/lib/compositions/pipelines/useTryPipeline.ts
index 5c8a72f6398..bb0a3d395bd 100644
--- a/js-packages/web-console/src/lib/compositions/pipelines/useTryPipeline.ts
+++ b/js-packages/web-console/src/lib/compositions/pipelines/useTryPipeline.ts
@@ -19,18 +19,20 @@ export const useTryPipeline = () => {
already_created,
trigger_location
})
- try {
- const newPipeline = await api.postPipeline({
- name: pipeline.name,
- description: pipeline.description,
- program_code: pipeline.program_code,
- program_config: {},
- runtime_config: {},
- udf_rust: pipeline.udf_rust,
- udf_toml: pipeline.udf_toml
- })
- updatePipelines((pipelines) => (pipelines.push(newPipeline), pipelines))
- } catch {}
+ if (!already_created) {
+ try {
+ const newPipeline = await api.postPipeline({
+ name: pipeline.name,
+ description: pipeline.description,
+ program_code: pipeline.program_code,
+ program_config: {},
+ runtime_config: {},
+ udf_rust: pipeline.udf_rust,
+ udf_toml: pipeline.udf_toml
+ })
+ updatePipelines((pipelines) => (pipelines.push(newPipeline), pipelines))
+ } catch {}
+ }
goto(resolve(`/pipelines/${encodeURIComponent(pipeline.name)}/`))
}
}