diff --git a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx
index 1527e084503d4..c2b6807a5833f 100644
--- a/site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx
+++ b/site/src/pages/CreateWorkspacePage/CreateWorkspacePageViewExperimental.tsx
@@ -608,7 +608,15 @@ export const CreateWorkspacePageViewExperimental: FC<
{parameters.map((parameter, index) => {
- const parameterField = `rich_parameter_values.${index}`;
+ const currentParameterValueIndex =
+ form.values.rich_parameter_values?.findIndex(
+ (p) => p.name === parameter.name,
+ ) ?? -1;
+ const parameterFieldIndex =
+ currentParameterValueIndex !== -1
+ ? currentParameterValueIndex
+ : index;
+ const parameterField = `rich_parameter_values.${parameterFieldIndex}`;
const isPresetParameter = presetParameterNames.includes(
parameter.name,
);
@@ -629,8 +637,13 @@ export const CreateWorkspacePageViewExperimental: FC<
return null;
}
+ // Get the form value by parameter name to ensure correct value mapping
const formValue =
- form.values?.rich_parameter_values?.[index]?.value || "";
+ currentParameterValueIndex !== -1
+ ? form.values?.rich_parameter_values?.[
+ currentParameterValueIndex
+ ]?.value || ""
+ : "";
return (