ipfs/kubo · error
internal error listing %s
Error message
internal error listing %s
What it means
Internal-error wrapper in `ipfs ls`: an unexpected (non-ErrNotFound-style) failure occurred while listing the given path — typically the background listing goroutine failed to resolve or decode the UnixFS/IPLD node. The generic message deliberately hides the cause from the user; the real error is logged with log.Errorf, so daemon logs are the place to diagnose.
Source
Thrown at core/commands/ls.go:212
defer cancel()
for i, fpath := range paths {
pth, err := cmdutils.PathOrCidPath(fpath)
if err != nil {
return err
}
results := make(chan iface.DirEntry)
lsErr := make(chan error, 1)
go func() {
// Listing decodes blocks with whatever codec their CID names.
// This goroutine is detached from the request, and a panic on it
// would end the daemon rather than the command. Ls closes
// results on its way out, so the reader below still terminates.
defer func() {
if rec := recover(); rec != nil {
log.Errorf("recovered from panic listing %s: %v\n%s", pth, rec, debug.Stack())
lsErr <- fmt.Errorf("internal error listing %s", pth)
}
}()
lsErr <- api.Unixfs().Ls(lsCtx, pth, results,
options.Unixfs.ResolveChildren(resolveSize || resolveType))
}()
processLink, dirDone = processDir()
for link := range results {
var ftype unixfs_pb.Data_DataType
switch link.Type {
case iface.TFile:
ftype = unixfs.TFile
case iface.TDirectory:
ftype = unixfs.TDirectory
case iface.TSymlink:
ftype = unixfs.TSymlink
}
lsLink := LsLink{View on GitHub (pinned to 329838acdf)
Solutions
- Check daemon logs (ipfs log tail) for the 'recovered from panic listing' or the underlying error line
- Retry if a block provider was temporarily unreachable
- Use ipfs dag get or ipfs cat on the path to isolate whether the block resolves
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at core/commands/ls.go:212 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of ipfs/kubo@329838acdf (2026-09-03).
Data as JSON: /api/errors/22a08b34acdf79ec.
Report an issue: GitHub.