actualbudget/actual · error

fileAccessError (requireFileOwner denial)

Error message

fileAccessError (requireFileOwner denial)

What it means

Error "fileAccessError (requireFileOwner denial)" thrown in actualbudget/actual.

Source

Thrown at packages/sync-server/src/app-sync.ts:244

      salt: file.encryptSalt,
      test: file.encryptTest,
    },
  });
});

app.post('/user-create-key', (req, res) => {
  const { fileId, keyId, keySalt, testContent } = req.body || {};

  const filesService = new FilesService(getAccountDb());
  const file = verifyFileExists(fileId, filesService, res, 'file-not-found');

  if (!file) {
    return;
  }

  const fileAccessError = requireFileOwner(file, res.locals.user_id);
  if (fileAccessError) {
    res.status(403);
    res.send(fileAccessError);
    return;
  }

  filesService.update(
    file.id,
    new FileUpdate({
      encryptSalt: keySalt,
      encryptKeyId: keyId,
      encryptTest: testContent,
    }),
  );

  res.send(OK_RESPONSE);
});

app.post('/reset-user-file', async (req, res) => {
  const { fileId } = req.body || {};

View on GitHub (pinned to d4334cb6e6)

When it happens

Trigger: Thrown at packages/sync-server/src/app-sync.ts:244 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/c98414c6484ca4d7. Report an issue: GitHub.