From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id 9B7C31FF09B for ; Mon, 12 Oct 2026 17:48:13 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id A42D8217E1; Mon, 12 Oct 2026 17:46:22 +0200 (CEST) From: =?UTF-8?q?Michael=20K=C3=B6ppl?= To: pve-devel@lists.proxmox.com Subject: [PATCH manager v8 15/22] ui: guest ID selector: show the error returned by nextid Date: Mon, 12 Oct 2026 17:45:53 +0200 Message-ID: <20261012154600.877830-16-m.koeppl@proxmox.com> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20261012154600.877830-1-m.koeppl@proxmox.com> References: <20261012154600.877830-1-m.koeppl@proxmox.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1791819969175 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.116 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) POISEN_SPAM_PILL 0.1 Meta: its spam POISEN_SPAM_PILL_1 0.1 random spam to be learned in bayes POISEN_SPAM_PILL_3 0.1 random spam to be learned in bayes RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: MFX2PWFIILKJIS5QNRATCJWAC2DOZK5L X-Message-ID-Hash: MFX2PWFIILKJIS5QNRATCJWAC2DOZK5L X-MailFrom: m.koeppl@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: The guest ID field validates IDs through the /cluster/nextid endpoint and reported any failure, including failed requests, as the ID being in use. Show the error the endpoint returns instead, so that the actual reason for rejecting an ID is visible. This is also needed for the endpoint to reject IDs that are not in use, but forbidden by the next-id datacenter option. The endpoint's errors are not translated, so keep showing the translated message that the ID is already in use if the guest is known to the UI. This leaves the endpoint's error for IDs rejected by next-id enforcement and for guests the user cannot see. Signed-off-by: Michael Köppl Reviewed-by: Fiona Ebner Tested-by: Fiona Ebner --- www/manager6/form/GuestIDSelector.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/www/manager6/form/GuestIDSelector.js b/www/manager6/form/GuestIDSelector.js index f3160a744..a7cf421ac 100644 --- a/www/manager6/form/GuestIDSelector.js +++ b/www/manager6/form/GuestIDSelector.js @@ -27,7 +27,7 @@ Ext.define('PVE.form.GuestIDSelector', { } if (me.validateExists === false && me.rejected) { - return me.inUseID; + return me.nextIDError; } return true; @@ -67,6 +67,15 @@ Ext.define('PVE.form.GuestIDSelector', { }, failure: function (response, opts) { me.rejected = true; + // prefer translated message if guest is known to the UI + if (PVE.data.ResourceStore.findVMID(newValue)) { + me.nextIDError = me.inUseID; + } else { + let error = response.result?.errors?.vmid; + me.nextIDError = error + ? Ext.htmlEncode(error.trim()) + : response.htmlStatus; + } me.validate(); }, }); -- 2.47.3