Skip to content

Known limitations

  • A single administrator: one shared password, no accounts or roles.
  • SQLite (WAL) on the ./data volume: a single host, no high availability. Web and worker share the same file, which must stay on a local disk (no NFS).
  • PST fingerprint tied to UPLOAD_CHUNK_SIZE: changing this value after a first import loses recognition of the same file (see Pause, resume and retry), with a risk of duplicates if the PST is re-uploaded.
  • libpff: a corrupted PST can crash the native library. The affected items are skipped (“libpff crash” error); beyond MAX_CHILD_CRASHES crashes, the job fails. The counter is per job and reset at the end of the job. A badly damaged PST can be rejected at analysis.
  • Encrypted / password-protected PSTs: no dedicated handling in the code; a PST whose content is encrypted will give errors or be invalid. Do not rely on it.
  • Depends on the quality of the target server: APPEND, SPECIAL-USE, quota (GETQUOTAROOT if available) and DAV discovery vary between servers.
  • No Swagger UI: /docs, /redoc and /openapi.json are disabled (the API reference is in API).
  • In-memory login rate limiting: 5 failures / 5 min per IP, reset when web restarts. Behind a proxy, check that X-Forwarded-For is forwarded, otherwise all requests share the proxy’s IP.
  • Mailbox passwords are stored encrypted but can be decrypted by the application: protect ./data and the SECRET_KEY.
  • Browser support. JS libs are vendored (works offline), but the browser must support modern APIs (fetch, SSE, File.slice).