diff --git a/pkg/cmd/register/register.go b/pkg/cmd/register/register.go index e4c8367b..0f17d6a9 100644 --- a/pkg/cmd/register/register.go +++ b/pkg/cmd/register/register.go @@ -292,6 +292,14 @@ func runRegisterSteps(ctx context.Context, t *terminal.Terminal, s RegisterStore NodeSpec: toProtoNodeSpec(hwProfile), })) if err != nil { + // Newer dev-plane returns CodeAlreadyExists for a duplicate node name. + // Older dev-plane leaks the raw Postgres unique-constraint error, so we + // also match the constraint name for backwards compatibility until the + // server change is fully rolled out. + if connect.CodeOf(err) == connect.CodeAlreadyExists || + strings.Contains(err.Error(), "externalnode_organization_id_name") { + return nil, fmt.Errorf("a node with this name already exists") + } return nil, fmt.Errorf("failed to register node: %w", err) }