rancher/rancher · error

token %s is already in use by secret

Error message

token %s is already in use by secret

What it means

Error "token %s is already in use by secret" thrown in rancher/rancher.

Source

Thrown at pkg/api/norman/customization/cred/store.go:154

			}

			knownTokens := make(Set[string])
			for _, secret := range secrets {
				if len(secret.Data["harvestercredentialConfig-kubeconfigContent"]) == 0 {
					continue
				}

				err := TokenNamesFromContent(secret.Data["harvestercredentialConfig-kubeconfigContent"], knownTokens)
				if err != nil {
					// If a secret is all messed up, let the user do whatever they want: it shouldn't be usable anyway and will be remediated when updated.
					logrus.Errorf("failed to get tokens from secret: %v", err)
					continue
				}
			}

			for tokenName := range tokens {
				if _, ok := knownTokens[tokenName]; ok {
					return fmt.Errorf("token %s is already in use by secret", tokenName)
				}
			}
		}
	}
	return nil
}

func (s *Store) Create(apiContext *types.APIContext, schema *types.Schema, data map[string]interface{}) (map[string]interface{}, error) {
	if err := s.processHarvesterCloudCredential(data); err != nil {
		return nil, fmt.Errorf("failed to process harvester cloud credential: %w", err)
	}

	return s.Store.Create(apiContext, schema, data)
}

func (s *Store) Update(apiContext *types.APIContext, schema *types.Schema, data map[string]interface{}, id string) (map[string]interface{}, error) {
	if err := s.processHarvesterCloudCredential(data); err != nil {
		return nil, fmt.Errorf("failed to process harvester cloud credential: %w", err)

View on GitHub (pinned to 932558d4e6)

When it happens

Trigger: Thrown at pkg/api/norman/customization/cred/store.go:154 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of rancher/rancher@932558d4e6 (2026-08-16). Data as JSON: /api/errors/f64c9e8a5f1759a6. Report an issue: GitHub.