router-for-me/CLIProxyAPI · error

generate Claude device ID: %w

Error message

generate Claude device ID: %w

What it means

Error "generate Claude device ID: %w" thrown in router-for-me/CLIProxyAPI.

Source

Thrown at internal/auth/claude/identity.go:46

	seen := make(map[string]struct{}, ClaudeDevicePoolSize)
	for len(deviceIDs) < ClaudeDevicePoolSize {
		deviceID, errDeviceID := generateDeviceID()
		if errDeviceID != nil {
			return nil, errDeviceID
		}
		if _, exists := seen[deviceID]; exists {
			continue
		}
		seen[deviceID] = struct{}{}
		deviceIDs = append(deviceIDs, deviceID)
	}
	return deviceIDs, nil
}

func generateDeviceID() (string, error) {
	data := make([]byte, claudeDeviceIDByteSize)
	if _, errRead := rand.Read(data); errRead != nil {
		return "", fmt.Errorf("generate Claude device ID: %w", errRead)
	}
	return hex.EncodeToString(data), nil
}

// NormalizeDeviceIDPool returns the first valid device ID in canonical form.
func NormalizeDeviceIDPool(raw any) []string {
	var values []string
	switch typed := raw.(type) {
	case []string:
		values = typed
	case []any:
		values = make([]string, 0, len(typed))
		for _, value := range typed {
			if text, ok := value.(string); ok {
				values = append(values, text)
			}
		}
	default:

View on GitHub (pinned to 78f0c4079e)

Solutions

  1. Check the wrapped error from random/device-ID generation (entropy source failure).
  2. Retry; if persistent, verify the system CSPRNG is available.

When it happens

Trigger: Thrown at internal/auth/claude/identity.go:46 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of router-for-me/CLIProxyAPI@78f0c4079e (2026-08-15). Data as JSON: /api/errors/f4a639bbdc0137e1. Report an issue: GitHub.