Task system is confusing

Issue Description

The current task system is confusing. I was looking to perform what’s written in the UPGRADING guide: recalculate quota but I couldn’t find it in the tasks. After tweaking for a while, I’ve found the “Perform account maintenance operations”, but I have to select each user one by one (and since I’ve the same user name for different domains, they all appear in an list with nothing to make a difference between them)

Also, there’s no “Create task immediately” button (IIUC, you need to set for when you want the task to be done, but I’ve no idea how long the task will take).

Expected Behavior

Can you add a button to select all accounts in one click, and a button to schedule the task now (or ASAP) instead of specifying the due time (which honestly, is impossible for us to estimate) ?

Actual Behavior

Without a due time set, we can create the task, but it’s not listed in the task list (I think it failed to create the task, but didn’t say that).

Stalwart Version

v0.16.x

Installation Method

Binary (Linux)

Database Backend

PostgreSQL

Blob Storage

Filesystem

Search Engine

Internal

Directory Backend

Internal

I have reviewed the documentation and FAQ and confirm that my issue is NOT addressed there.

on

I have searched this support forum (open and closed topics) and confirm this is not a duplicate.

on

I understand that topics in this category are triaged by a bot first but a human reply will follow up. If I’d prefer a human-only reply, I’ll add the no-ai tag to my topic.

on

Let me look into the task system, maintenance operations, and scheduling to give an accurate answer.

Your feedback highlights two real UX gaps in the current WebUI task system. Here’s what’s currently supported and what would need to improve:

On running tasks “now”: The due field inside the status object is required when creating a task via the WebUI/CLI/JMAP. To run a task immediately, you can simply set due to the current time (or any past time) – the server will pick it up on its next poll cycle. So the workaround is to enter the current timestamp. A dedicated “Run now” button that auto-fills the current time is not present in the current WebUI but would be a sensible improvement.

On the missing task listing: A task created without a valid due timestamp will silently fail to create (as you observed). This is a UI feedback gap – there’s no validation error shown.

On selecting all accounts for AccountMaintenance: For quota recalculation across all accounts at once, the better approach is actually a StoreMaintenance task with maintenanceType: "resetUserQuotas", which resets all user quotas store-wide in a single task – no need to select accounts one by one. The AccountMaintenance / recalculateQuota type is per-account only, by design.

On disambiguating accounts with the same username across domains: The picker currently shows display names without domain context, which is a WebUI bug/limitation worth reporting.

Practical workarounds right now:

  • For all-account quota reset: use Management > Tasks > Create > StoreMaintenance, type resetUserQuotas – one task, all accounts covered.
  • For scheduling immediately: set the due time to “now” (current date/time).
  • For per-account work on a specific domain account: use the CLI (stalwart-cli create Task/AccountMaintenance) where you can supply the exact accountId rather than picking from a display-name list.

Docs reference: Tasks documentation and Task object reference.

This is an automated reply from the Stalwart Help Bot. Other community members may follow up if this answer is incomplete or wrong. If you found it useful, mention @helpbot in any reply to ask follow-up questions and the bot will respond again.