juicedata/juicefs · error
listing failed, stop syncing, waiting for pending ones
Error message
listing failed, stop syncing, waiting for pending ones
What it means
Returned by the sync producer consumer loop when a nil object arrives on the keys channel — the upstream listAll goroutine pushed nil because listing failed. Sync stops enqueuing new work, waits for pending copies, and reports this aggregate failure (checkpoint preserved for resume).
Source
Thrown at pkg/sync/sync.go:1472
}
skip++
skipBytes += obj.Size()
if skip > 100 || time.Since(lastUpdate) > time.Millisecond*100 {
lastUpdate = time.Now()
flushProgress()
}
}
sendTask := func(obj object.Object) {
if checkpointMgr != nil {
checkpointMgr.AddPendingKey(prefix, obj)
}
tasks <- obj
}
for obj := range srckeys {
if obj == nil {
return fmt.Errorf("listing failed, stop syncing, waiting for pending ones")
}
if !config.Dirs && obj.IsDir() && (!config.Links || !obj.IsSymlink()) {
if checkpointMgr != nil {
checkpointMgr.UpdateLastListedKey(prefix, obj)
}
logger.Debug("Ignore directory ", obj.Key())
continue
}
if dstobj != nil && obj.Key() > dstobj.Key() {
if handleExtraObject(tasks, dstobj, config, checkpointMgr, prefix) {
return nil
}
dstobj = nil
}
if dstobj == nil {
for dstobj = range dstkeys {View on GitHub (pinned to c9a67b23e8)
Solutions
- Fix the source listing problem (credentials/network), then resume sync from the checkpoint
- Re-run juicefs sync; completed objects are skipped
Defensive patterns
Strategy: retry
When it happens
Trigger: Thrown at pkg/sync/sync.go:1472 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of juicedata/juicefs@c9a67b23e8 (2026-09-06).
Data as JSON: /api/errors/2b42a31d61fb1b7b.
Report an issue: GitHub.