kubernetes/kops · error

metadata token was empty

Error message

metadata token was empty

What it means

getLinodeMetadataValue returns this sentinel error when the metadata service responded 200 to PUT /v1/token but the trimmed body is empty, meaning no usable metadata token was issued. It is a guard against proceeding to the instance call without credentials.

Source

Thrown at upup/pkg/fi/cloudup/linode/linodemetadata/authenticator.go:99

	tokenResp, err := client.Do(tokenReq)
	if err != nil {
		return "", fmt.Errorf("fetching metadata token: %w", err)
	}
	defer tokenResp.Body.Close()

	if tokenResp.StatusCode != http.StatusOK {
		return "", fmt.Errorf("fetching metadata token: unexpected status code %d", tokenResp.StatusCode)
	}

	tokenBytes, err := io.ReadAll(tokenResp.Body)
	if err != nil {
		return "", fmt.Errorf("reading metadata token response: %w", err)
	}

	token := strings.TrimSpace(string(tokenBytes))
	if token == "" {
		return "", fmt.Errorf("metadata token was empty")
	}

	instanceReq, err := http.NewRequestWithContext(ctx, http.MethodGet, metadataBaseURL+"/v1/instance", nil)
	if err != nil {
		return "", fmt.Errorf("building instance metadata request: %w", err)
	}
	instanceReq.Header.Set("Metadata-Token", token)

	instanceResp, err := client.Do(instanceReq)
	if err != nil {
		return "", fmt.Errorf("fetching instance metadata: %w", err)
	}
	defer instanceResp.Body.Close()

	if instanceResp.StatusCode != http.StatusOK {
		return "", fmt.Errorf("fetching instance metadata: unexpected status code %d", instanceResp.StatusCode)
	}

View on GitHub (pinned to 4c8573c808)

Solutions

  1. Retry the request, as the service may have transiently returned an empty body
  2. Check Linode metadata service health and instance metadata configuration
  3. Log the raw response to diagnose server-side anomalies
Defensive patterns

Strategy: retry

When it happens

Trigger: Thrown at upup/pkg/fi/cloudup/linode/linodemetadata/authenticator.go:99 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05). Data as JSON: /api/errors/71cbb6eb37672969. Report an issue: GitHub.