From 82def8c6795eed7ef1fef46c7b1398c5fe9c8dd2 Mon Sep 17 00:00:00 2001 From: rcourtman Date: Wed, 19 Nov 2025 14:23:57 +0000 Subject: [PATCH] fix(setup): correct fmt.Sprintf argument alignment for PVE quick setup Fixed critical argument mismatch bug where fmt.Sprintf arguments didn't align with template placeholders. This caused: - authToken being passed where pulseURL expected (curl errors) - pulseURL being passed where authToken expected (empty Authorization headers) - tokenName misalignment (Token ID placeholder broken) Root cause: Template has 51 %s placeholders (54 total - 3 escaped %%s), but argument list had wrong count and ordering. Solution: Rebuilt argument list (lines 5049-5059) with correct mapping: - 27 pulseURL (all installer URLs, --pulse-server flags, API endpoints) - 11 tokenName (token creation, checks, final Token ID) - 3 authToken (AUTH_TOKEN variable + 2 Authorization headers) - 3 serverHost (error message rerun hints) - 1 each: serverName, time, pulseIP, storagePerms, SSH keys, minProxyReadyVersion Verified with go vet (passes). Mapping confirmed by walking each placeholder in template and matching to correct argument type. Related to #TBD (user will test) --- internal/api/config_handlers.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/internal/api/config_handlers.go b/internal/api/config_handlers.go index 0e2c7af..4716bf4 100644 --- a/internal/api/config_handlers.go +++ b/internal/api/config_handlers.go @@ -5047,14 +5047,16 @@ if [ "$AUTO_REG_SUCCESS" != true ]; then echo "" fi `, serverName, time.Now().Format("2006-01-02 15:04:05"), - tokenName, pulseURL, pulseURL, pulseURL, serverHost, pulseURL, - pulseURL, serverHost, pulseURL, tokenName, pulseURL, pulseURL, + tokenName, pulseURL, pulseURL, + pulseURL, serverHost, pulseURL, + pulseURL, serverHost, pulseURL, + tokenName, pulseURL, pulseURL, pulseURL, pulseURL, pulseIP, tokenName, tokenName, tokenName, tokenName, tokenName, tokenName, authToken, pulseURL, serverHost, tokenName, tokenName, storagePerms, sshKeys.ProxyPublicKey, sshKeys.SensorsPublicKey, minProxyReadyVersion, - pulseURL, pulseURL, pulseURL, pulseURL, pulseURL, pulseURL, authToken, pulseURL, authToken, pulseURL, pulseURL, pulseURL, pulseURL, pulseURL, pulseURL, pulseURL, pulseURL, pulseURL, pulseURL, tokenName) + pulseURL, pulseURL, pulseURL, pulseURL, pulseURL, pulseURL, pulseURL, pulseURL, pulseURL, pulseURL, pulseURL, pulseURL, pulseURL, pulseURL, authToken, pulseURL, authToken, pulseURL, tokenName) } else { // PBS script = fmt.Sprintf(`#!/bin/bash