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
- Check the wrapped error from random/device-ID generation (entropy source failure).
- 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.