plandex-ai/plandex · error
failed to read the file %s: %v
Error message
failed to read the file %s: %v
What it means
Fires when os.ReadFile (or equivalent) fails to read a file's content during a non-map context load. The file passed earlier size/existence checks but became unreadable — permissions, deletion race, or special file type.
Source
Thrown at app/cli/lib/context_load.go:514
currentMapInputBatch[path] = res.mapContent
mapSize += res.size
mapInputShas[path] = res.shaVal
mapInputTokens[path] = res.tokens
mapInputSizes[path] = res.size
if len(res.mapFilesTruncatedTooLarge) > 0 {
mapFilesTruncatedTooLarge = append(mapFilesTruncatedTooLarge, res.mapFilesTruncatedTooLarge...)
}
if len(res.mapFilesSkippedAfterSizeLimit) > 0 {
mapFilesSkippedAfterSizeLimit = append(mapFilesSkippedAfterSizeLimit, res.mapFilesSkippedAfterSizeLimit...)
}
} else if isImage {
fileContent, err := os.ReadFile(path)
if err != nil {
errCh <- fmt.Errorf("failed to read the file %s: %v", path, err)
return
}
contextMu.Lock()
defer contextMu.Unlock()
loadContextReq = append(loadContextReq, &shared.LoadContextParams{
ContextType: shared.ContextImageType,
Name: path,
Body: base64.StdEncoding.EncodeToString(fileContent),
FilePath: path,
ImageDetail: params.ImageDetail,
AutoLoaded: params.AutoLoaded,
})
} else {
fileContent, err := os.ReadFile(path)
if err != nil {
errCh <- fmt.Errorf("failed to read the file %s: %v", path, err)View on GitHub (pinned to e2d772072e)
Solutions
- Check the wrapped error (permissions vs not-found vs I/O)
- Confirm the file still exists and is a regular file
- Skip the unreadable file and continue loading the rest
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at app/cli/lib/context_load.go:514 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of plandex-ai/plandex@e2d772072e (2026-09-05).
Data as JSON: /api/errors/50ef4800a3b18da4.
Report an issue: GitHub.