diff --git a/frontend/test/metabase/scenarios/models/reproductions/22517-add-remove-column-drops-metadata.cy.spec.js b/frontend/test/metabase/scenarios/models/reproductions/22517-add-remove-column-drops-metadata.cy.spec.js
new file mode 100644
index 0000000000000000000000000000000000000000..c7df1b47d715824442ed0d5937b870e9eed82a07
--- /dev/null
+++ b/frontend/test/metabase/scenarios/models/reproductions/22517-add-remove-column-drops-metadata.cy.spec.js
@@ -0,0 +1,60 @@
+import { restore } from "__support__/e2e/cypress";
+import { openDetailsSidebar } from "../helpers/e2e-models-helpers";
+
+describe.skip("issue 22517", () => {
+  beforeEach(() => {
+    cy.intercept("POST", "/api/card/*/query").as("cardQuery");
+    cy.intercept("PUT", "/api/card/*").as("updateMetadata");
+
+    restore();
+    cy.signInAsAdmin();
+
+    cy.createNativeQuestion(
+      {
+        name: "22517",
+        native: { query: `select * from orders` },
+        dataset: true,
+      },
+      { visitQuestion: true },
+    );
+
+    openDetailsSidebar();
+
+    cy.findByText("Customize metadata").click();
+    cy.wait(["@cardQuery", "@cardQuery"]);
+
+    renameColumn("ID", "Foo");
+
+    cy.button("Save changes").click();
+    cy.wait("@updateMetadata");
+  });
+
+  it("adding or removging a column should not drop previously edited metadata (metabase#22517)", () => {
+    openDetailsSidebar();
+
+    cy.findByText("Edit query definition").click();
+    cy.wait(["@cardQuery", "@cardQuery"]);
+
+    // Make sure previous metadata changes are reflected in the UI
+    cy.findByText("Foo");
+
+    // This will edit the original query and add the `SIZE` column
+    // Updated query: `select *, case when quantity > 4 then 'large' else 'small' end size from orders`
+    cy.get(".ace_content").type(
+      "{leftarrow}".repeat(" from orders".length) +
+        ", case when quantity > 4 then 'large' else 'small' end size ",
+    );
+
+    cy.get(".NativeQueryEditor .Icon-play").click();
+    cy.wait("@dataset");
+
+    cy.findByText("Foo");
+  });
+});
+
+function renameColumn(column, newName) {
+  cy.findByDisplayValue(column)
+    .clear()
+    .type(newName)
+    .blur();
+}