nats-io/nats-server · error
unexpected content (account= )
Error message
unexpected content (account=%s)
What it means
During account snapshot restore (used by JetStream account migration/clone), the temporary extraction directory contained entries other than the expected account/stores/consumers layout — the logAndReturnError closure in the snapshot processing reports 'unexpected content' with the account name. Means the snapshot archive is malformed or was produced by an incompatible server version.
Solutions
- Regenerate the snapshot from a healthy source server
- Ensure source and target nats-server versions match
- Verify the snapshot file was not truncated or altered in transfer
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at server/stream.go:9341 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of nats-io/nats-server@3a66a489d2 (2026-09-02).
Data as JSON: /api/errors/ee158bc82a89ea62.
Report an issue: GitHub.
Appendix: source
Thrown at server/stream.go:9341
if _, err := os.Stat(sd); os.IsNotExist(err) {
if err := os.MkdirAll(sd, defaultDirPerms); err != nil {
return nil, fmt.Errorf("could not create snapshots directory - %v", err)
}
}
sdir, err := os.MkdirTemp(sd, "snap-")
if err != nil {
return nil, err
}
if _, err := os.Stat(sdir); os.IsNotExist(err) {
if err := os.MkdirAll(sdir, defaultDirPerms); err != nil {
return nil, fmt.Errorf("could not create snapshots directory - %v", err)
}
}
defer os.RemoveAll(sdir)
logAndReturnError := func() error {
a.mu.RLock()
err := fmt.Errorf("unexpected content (account=%s)", a.Name)
if a.srv != nil {
a.srv.Errorf("Stream restore failed due to %v", err)
}
a.mu.RUnlock()
return err
}
sdirCheck := filepath.Clean(sdir) + string(os.PathSeparator)
_, isClustered := jsa.jetStreamAndClustered()
jsa.usageMu.RLock()
selected, tier, hasTier := jsa.selectLimits(cfg.Replicas)
jsa.usageMu.RUnlock()
reserved := int64(0)
if hasTier {
if isClustered {
js.mu.RLock()
_, reserved = js.tieredStreamAndReservationCount(a.Name, tier, &cfg)
js.mu.RUnlock()View on GitHub (pinned to 3a66a489d2)