Seldom used web interfaces stop sending JS file

Issue Description

I have noticed that across both mail clusters I run, the web interfaces of the nodes I don’t visit (I usually do management from the same node) will eventually fail to load. This seems to be from a failure to specifically send the JS file, all other files get sent.

Expected Behavior

I would expect all admin management interfaces to be available always.

Actual Behavior

The management node I visit usually a few times a week always loads. The nodes I rarely visit eventually fail to send the JS file. Instead I get a 500 JSON response with “There was a problem while processing your request. Please contact the system administrator if this problem persists.”.

HOWEVER, restarting the node makes the web interface work again. In addition, the name of the JS file changes.

Reproduction Steps

  1. Configure a 3 or 5 node cluster
  2. Do not use cluster roles
  3. Only visit one node
  4. After about a week (not exactly sure), a node’s interface will stop loading.

Relevant Log Output

ERROR Resource error (resource.error) listenerId = “https”, localPort = 443, remoteIp = xxx.xxx.xxx.xxx, remotePort = 2118, reason = “No such file or directory (os error 2)”, path = “assets/index-CldiOQ_u.js”, causedBy = “crates/common/src/manager/application.rs:100”

Stalwart Version

v0.16.x

Installation Method

Binary (Linux)

Database Backend

FoundationDB

Blob Storage

FoundationDB

Search Engine

Internal

Directory Backend

Internal

Additional Context

I’m accessing the web interface from firefox

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

By default Stalwart uses the system’s tmp directory to unpack the webadmin. Some OS purge temporary directories every once in a while. To fix this you need to update unpackDirectory under Application with a temporary directory that won’t be deleted by the OS.

I think you’re right, I’m using Rocky which does wipe old files in tmp. I’ve updated the unpack directory, and hopefully the site stays up.