NousResearch/hermes-agent · error · Error
Could not read ${label}
Error message
Could not read ${label} What it means
Error "Could not read ${label}" thrown in NousResearch/hermes-agent.
Source
Thrown at apps/desktop/src/app/session/hooks/use-prompt-actions/index.ts:152
// Read bytes/paths ONCE, outside the retry. Only the session-scoped RPC is
// replayed on recovery — re-reading a multi-MB file to retry a dead session
// id would double the disk/IPC cost of every recovered attach.
let imagePayload: Awaited<ReturnType<typeof readImageForRemoteAttach>> | null = null
let fileDataUrl: null | string = null
if (uploadBytes) {
try {
if (attachment.kind === 'image') {
imagePayload = await readImageForRemoteAttach(path)
} else {
fileDataUrl = await readFileDataUrlForAttach(path)
}
} catch (err) {
throw friendlyRemoteAttachError(err, label)
}
if (attachment.kind === 'image' ? !imagePayload : !fileDataUrl) {
throw new Error(`Could not read ${label}`)
}
}
const stageForSession = async (liveSessionId: string): Promise<ComposerAttachment> => {
if (attachment.kind === 'image') {
const result = imagePayload
? await requestGateway<ImageAttachResponse>('image.attach_bytes', {
session_id: liveSessionId,
content_base64: imagePayload.contentBase64,
filename: imagePayload.filename
})
: await requestGateway<ImageAttachResponse>('image.attach', {
path,
session_id: liveSessionId
})
if (!result.attached) {
throw new Error(result.message || `Could not attach ${label}`)View on GitHub (pinned to c896c09c42)
Solutions
- Check that the file still exists at the path and is readable.
- Verify file permissions and that the path is inside an allowed workspace.
- Re-attach the file from its current location.
When it happens
Trigger: Thrown at apps/desktop/src/app/session/hooks/use-prompt-actions/index.ts:152 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of NousResearch/hermes-agent@c896c09c42 (2026-08-14).
Data as JSON: /api/errors/219c8e92036e83c9.
Report an issue: GitHub.