crowdsecurity/crowdsec · error
allowlist %s has no ID
Error message
allowlist %s has no ID
What it means
An allowlist entry received from CAPI has a name and URL but a nil ID field. The ID is required to key the allowlist in local state; a missing ID means the CAPI payload is malformed/incomplete for this entry, so it is rejected rather than silently mis-keyed.
Source
Thrown at pkg/apiserver/apic.go:726
}
func (a *apic) updateOneAllowlist(ctx context.Context, client *apiclient.ApiClient, link *modelscapi.AllowlistLink) error {
if log.IsLevelEnabled(log.TraceLevel) {
log.Tracef("allowlist body: %+v", spew.Sdump(link))
}
if link.Name == nil {
log.Warn("allowlist has no name")
return nil
}
if link.URL == nil {
log.Warnf("allowlist %s has no URL", *link.Name)
return nil
}
if link.ID == nil {
return fmt.Errorf("allowlist %s has no ID", *link.Name)
}
description := ""
if link.Description != nil {
description = *link.Description
}
req, err := http.NewRequestWithContext(ctx, http.MethodGet, *link.URL, http.NoBody)
if err != nil {
return fmt.Errorf("while pulling allowlist: %s", err)
}
resp, err := client.GetClient().Do(req)
if err != nil {
return fmt.Errorf("while pulling allowlist: %s", err)
}
defer resp.Body.Close()
View on GitHub (pinned to 909b515798)
Solutions
- Retry the pull later — transient stream glitches can drop fields
- Upgrade crowdsec if a version mismatch in the CAPI contract is suspected
- If persistent, capture the allowlist entry and report it to CrowdSec
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at pkg/apiserver/apic.go:726 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of crowdsecurity/crowdsec@909b515798 (2026-09-06).
Data as JSON: /api/errors/2928015cb3117857.
Report an issue: GitHub.