actualbudget/actual · error
fileId is required
Error message
fileId is required
What it means
Error "fileId is required" thrown in actualbudget/actual.
Source
Thrown at packages/sync-server/src/app-sync.ts:310
}
}
res.send(OK_RESPONSE);
});
app.post('/upload-user-file', async (req, res) => {
if (typeof req.headers['x-actual-name'] !== 'string') {
// FIXME: Not sure how this cannot be a string when the header is
// set.
res.status(400).send('single x-actual-name is required');
return;
}
const name = decodeURIComponent(req.headers['x-actual-name']);
const fileId = req.headers['x-actual-file-id'];
if (!fileId || typeof fileId !== 'string') {
res.status(400).send('fileId is required');
return;
}
if (!isValidFileId(fileId)) {
res.status(400).send('invalid fileId');
return;
}
let groupId = req.headers['x-actual-group-id'] || null;
const encryptMeta = extractSingleHeader(req, res, 'x-actual-encrypt-meta');
if (res.headersSent) return;
const syncFormatVersion = extractSingleHeader(req, res, 'x-actual-format');
if (res.headersSent) return;
if (!!groupId && (typeof groupId !== 'string' || !isValidGroupId(groupId))) {
res.status(400).send('invalid groupId');
return;
}
View on GitHub (pinned to d4334cb6e6)
When it happens
Trigger: Thrown at packages/sync-server/src/app-sync.ts:310 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of actualbudget/actual@d4334cb6e6 (2026-08-29).
Data as JSON: /api/errors/0eaa1b738797b3de.
Report an issue: GitHub.