henrygd/beszel · error
no fingerprint in response
Error message
no fingerprint in response
What it means
unmarshalLegacyResponse returns this when a CheckFingerprint response has resp.Fingerprint == nil, so no FingerprintResponse can be written to dest. The legacy agent answered but omitted the fingerprint data.
Source
Thrown at internal/hub/transport/transport.go:66
func unmarshalLegacyResponse(resp common.AgentResponse, action common.WebSocketAction, dest any) error {
switch action {
case common.GetData:
d, ok := dest.(*system.CombinedData)
if !ok {
return fmt.Errorf("unexpected dest type for GetData: %T", dest)
}
if resp.SystemData == nil {
return errors.New("no system data in response")
}
*d = *resp.SystemData
return nil
case common.CheckFingerprint:
d, ok := dest.(*common.FingerprintResponse)
if !ok {
return fmt.Errorf("unexpected dest type for CheckFingerprint: %T", dest)
}
if resp.Fingerprint == nil {
return errors.New("no fingerprint in response")
}
*d = *resp.Fingerprint
return nil
case common.GetContainerLogs:
d, ok := dest.(*string)
if !ok {
return fmt.Errorf("unexpected dest type for GetContainerLogs: %T", dest)
}
if resp.String == nil {
return errors.New("no logs in response")
}
*d = *resp.String
return nil
case common.GetContainerInfo:
d, ok := dest.(*string)
if !ok {
return fmt.Errorf("unexpected dest type for GetContainerInfo: %T", dest)
}View on GitHub (pinned to b38fb7dafa)
Solutions
- Update the agent on the host to a hub-compatible version
- Delete the stored fingerprint for the host and reconnect so it is re-established
- Confirm you're not mixing transports/agent types
- Inspect agent logs to see why it didn't return a fingerprint
Defensive patterns
Strategy: validation
Validate before calling
// ensure a compatible agent is reachable before fingerprint check
v, err := client.Request(common.GetVersion, new(string))
if err != nil { return fmt.Errorf("agent not compatible: %w", err) } Try / catch
if err := UnmarshalResponse(resp, common.CheckFingerprint, dest); err != nil {
if strings.Contains(err.Error(), "no fingerprint") {
// clear stored fingerprint and reconnect
}
return err
} Prevention
- Update agents before upgrading the hub
- Reset fingerprints when rebuilding hosts
- Use official agent builds, not custom forks
When it happens
Trigger: UnmarshalResponse on a CheckFingerprint request whose legacy AgentResponse lacks the Fingerprint field.
Common situations: Agent/hub version mismatch during first connection/fingerprint verification; custom or very old agent that doesn't implement fingerprint checks; corrupted response producing empty fields.
Related errors
- no system data in response
- no logs in response
- no info in response
- no SMART data in response
- fingerprint file is empty
AI-assisted analysis of henrygd/beszel@b38fb7dafa (2026-08-31).
Data as JSON: /api/errors/9f065a9b9fc50b61.
Report an issue: GitHub.