Logs not showing in WebUI

Issue Description

The Log in Observability / Logs in Web UI are showing “No results found”.

Expected Behavior

The Log in Observability / Logs in Web UI are showing recent log entries.

Actual Behavior

The Log in Observability / Logs in Web UI are showing “No results found”.
The LOG files are present in /var/lib/stalwart:

-rw-r--r-- 1 stalwart stalwart  201149 May 27 20:36 LOG.old.1779914239881938
-rw-r--r-- 1 stalwart stalwart  235438 May 27 20:39 LOG.old.1779914341261077
-rw-r--r-- 1 stalwart stalwart  240523 May 27 20:48 LOG.old.1779914938841697
-rw-r--r-- 1 stalwart stalwart  219119 May 27 20:53 LOG.old.1779915201473294
-rw-r--r-- 1 stalwart stalwart 1441635 May 28 17:58 LOG.old.1779991089611990

Reproduction Steps

Run stalwart using Docker:

"docker volume create stalwart-data"
"docker volume create stalwart-etc"
"docker run -d --name stalwart     --restart unless-stopped     -p 443:443 -p 8080:8080     -p 25:25 -p 587:587 -p 465:465     -p 143:143 -p 993:993     -p 110:110 -p 995:995     -p 4190:4190     -v stalwart-etc:/etc/stalwart     -v stalwart-data:/var/lib/stalwart     stalwartlabs/stalwart:v0.16"

Configure default domain, DNS and TLS.
Open Web UI, navigate to Management / Observability / Logs

Relevant Log Output

Log file excerpt (too long):

2026/05/28-22:02:57.723138 139716361750912            Options.memtable_max_range_deletions: 0
2026/05/28-22:02:57.723210 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.723286 139716361750912 [db/column_family.cc:695]    (skipping printing options)

2026/05/28-22:02:57.723210 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.723286 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.723370 139716361750912 [db/column_family.cc:695]    (skipping printing options)

2026/05/28-22:02:57.723286 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.723370 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.723442 139716361750912 [db/column_family.cc:695]    (skipping printing options)

2026/05/28-22:02:57.723370 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.723442 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.723512 139716361750912 [db/column_family.cc:695]    (skipping printing options)

2026/05/28-22:02:57.723442 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.723512 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.723591 139716361750912 [db/column_family.cc:695]    (skipping printing options)

2026/05/28-22:02:57.723512 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.723591 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.723667 139716361750912 [db/column_family.cc:695]    (skipping printing options)

2026/05/28-22:02:57.723591 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.723667 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.723744 139716361750912 [db/column_family.cc:695]    (skipping printing options)

2026/05/28-22:02:57.723667 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.723744 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.723815 139716361750912 [db/column_family.cc:695]    (skipping printing options)

2026/05/28-22:02:57.723744 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.723815 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.724014 139716361750912 [db/column_family.cc:695]    (skipping printing options)

2026/05/28-22:02:57.723815 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.724014 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.724084 139716361750912 [db/column_family.cc:695]    (skipping printing options)

2026/05/28-22:02:57.724014 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.724084 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.724158 139716361750912 [db/column_family.cc:695]    (skipping printing options)

2026/05/28-22:02:57.724084 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.724158 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.724228 139716361750912 [db/column_family.cc:695]    (skipping printing options)

2026/05/28-22:02:57.724158 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.724228 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.724303 139716361750912 [db/column_family.cc:695]    (skipping printing options)

2026/05/28-22:02:57.724228 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.724303 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.724602 139716361750912 [db/column_family.cc:695]    (skipping printing options)

2026/05/28-22:02:57.724303 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.724602 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.724676 139716361750912 [db/column_family.cc:695]    (skipping printing options)

2026/05/28-22:02:57.724602 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.724676 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.724756 139716361750912 [db/column_family.cc:695]    (skipping printing options)

2026/05/28-22:02:57.724676 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.724756 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.748161 139716361750912 [db/version_set.cc:6174] Recovered from manifest file:/var/lib/stalwart/MANIFEST-000102 succeeded,manifest_file_number is 102, next_file_number is 116, last_sequence is 26972, log_number is 72,prev_log_number is 0,max_column_family is 26,min_log_number_to_keep is 72

2026/05/28-22:02:57.724756 139716361750912 [db/column_family.cc:695]    (skipping printing options)
2026/05/28-22:02:57.748161 139716361750912 [db/version_set.cc:6174] Recovered from manifest file:/var/lib/stalwart/MANIFEST-000102 succeeded,manifest_file_number is 102, next_file_number is 116, last_sequence is 26972, log_number is 72,prev_log_number is 0,max_column_family is 26,min_log_number_to_keep is 72
2026/05/28-22:02:57.748171 139716361750912 [db/version_set.cc:6183] Column family [default] (ID 0), log number is 72

2026/05/28-22:02:57.748295 139716361750912 [db/db_impl/db_impl_open.cc:692] DB ID: 165d4c4e-1301-43ee-b5fd-715ed9077c3d
2026/05/28-22:02:57.749037 139716361750912 EVENT_LOG_v1 {"time_micros": 1780005777749029, "job": 1, "event": "recovery_started", "wal_files": [101]}
2026/05/28-22:02:57.749044 139716361750912 [db/db_impl/db_impl_open.cc:1379] Recovering log #101 mode 2

2026/05/28-22:02:57.749037 139716361750912 EVENT_LOG_v1 {"time_micros": 1780005777749029, "job": 1, "event": "recovery_started", "wal_files": [101]}
2026/05/28-22:02:57.749044 139716361750912 [db/db_impl/db_impl_open.cc:1379] Recovering log #101 mode 2
2026/05/28-22:02:57.749695 139716361750912 [db/db_impl/db_impl_open.cc:1353] Recovered to log #101 next seq #27522

2026/05/28-22:02:57.749044 139716361750912 [db/db_impl/db_impl_open.cc:1379] Recovering log #101 mode 2
2026/05/28-22:02:57.749695 139716361750912 [db/db_impl/db_impl_open.cc:1353] Recovered to log #101 next seq #27522
2026/05/28-22:02:57.750948 139716361750912 EVENT_LOG_v1 {"time_micros": 1780005777750918, "cf_name": "n", "job": 1, "event": "table_file_creation", "file_number": 117, "file_size": 1181, "file_checksum": "", "file_checksum_func_name": "Unknown", "smallest_seqno": 27160, "largest_seqno": 27341, "table_properties": {"data_size": 101, "index_size": 22, "index_partitions": 0, "top_level_index_size": 0, "index_key_is_user_key": 1, "index_value_is_delta_encoded": 1, "filter_size": 0, "raw_key_size": 74, "raw_average_key_size": 14, "raw_value_size": 40, "raw_average_value_size": 8, "num_data_blocks": 1, "num_entries": 5, "num_filter_entries": 0, "num_deletions": 0, "num_merge_operands": 1, "num_range_deletions": 0, "format_version": 6, "fixed_key_len": 0, "filter_policy": "", "column_family_name": "n", "column_family_id": 1, "comparator": "leveldb.BytewiseComparator", "user_defined_timestamps_persisted": 1, "key_largest_seqno": 27341, "merge_operator": "merge", "prefix_extractor_name": "nullptr", "property_collectors": "[]", "compression": "Snappy", "compression_options": "window_bits=-14; level=32767; strategy=0; max_dict_bytes=0; zstd_max_train_bytes=0; enabled=0; max_dict_buffer_bytes=0; use_zstd_dict_trainer=1; max_compressed_bytes_per_kb=896; checksum=0; ", "creation_time": 1780005777, "oldest_key_time": 1780005777, "newest_key_time": 0, "file_creation_time": 0, "slow_compression_estimated_data_size": 0, "fast_compression_estimated_data_size": 0, "db_id": "165d4c4e-1301-43ee-b5fd-715ed9077c3d", "db_session_id": "BSFL12SEDULXURATJ79K", "orig_file_number": 117, "seqno_to_time_mapping": "N/A"}, "status": "OK"}

2026/05/28-22:02:57.767519 139716361750912 EVENT_LOG_v1 {"time_micros": 1780005777767491, "cf_name": "g", "job": 1, "event": "table_file_creation", "file_number": 133, "file_size": 1247, "file_checksum": "", "file_checksum_func_name": "Unknown", "smallest_seqno": 26973, "largest_seqno": 27327, "table_properties": {"data_size": 158, "index_size": 24, "index_partitions": 0, "top_level_index_size": 0, "index_key_is_user_key": 1, "index_value_is_delta_encoded": 1, "filter_size": 0, "raw_key_size": 94, "raw_average_key_size": 23, "raw_value_size": 44, "raw_average_value_size": 11, "num_data_blocks": 1, "num_entries": 4, "num_filter_entries": 0, "num_deletions": 1, "num_merge_operands": 0, "num_range_deletions": 0, "format_version": 6, "fixed_key_len": 0, "filter_policy": "", "column_family_name": "g", "column_family_id": 23, "comparator": "leveldb.BytewiseComparator", "user_defined_timestamps_persisted": 1, "key_largest_seqno": 27327, "merge_operator": "nullptr", "prefix_extractor_name": "nullptr", "property_collectors": "[]", "compression": "Snappy", "compression_options": "window_bits=-14; level=32767; strategy=0; max_dict_bytes=0; zstd_max_train_bytes=0; enabled=0; max_dict_buffer_bytes=0; use_zstd_dict_trainer=1; max_compressed_bytes_per_kb=896; checksum=0; ", "creation_time": 1780005777, "oldest_key_time": 1780005777, "newest_key_time": 0, "file_creation_time": 0, "slow_compression_estimated_data_size": 0, "fast_compression_estimated_data_size": 0, "db_id": "165d4c4e-1301-43ee-b5fd-715ed9077c3d", "db_session_id": "BSFL12SEDULXURATJ79K", "orig_file_number": 133, "seqno_to_time_mapping": "N/A"}, "status": "OK"}
2026/05/28-22:02:57.767673 139716361750912 EVENT_LOG_v1 {"time_micros": 1780005777767670, "job": 1, "event": "recovery_finished", "status": "OK"}
2026/05/28-22:02:57.767967 139716361750912 [db/version_set.cc:5624] Creating manifest 135

2026/05/28-22:02:57.767673 139716361750912 EVENT_LOG_v1 {"time_micros": 1780005777767670, "job": 1, "event": "recovery_finished", "status": "OK"}
2026/05/28-22:02:57.767967 139716361750912 [db/version_set.cc:5624] Creating manifest 135
2026/05/28-22:02:57.783120 139716361750912 [db/db_impl/db_impl_open.cc:2632] SstFileManager instance 0x5624a7a1fc00

2026/05/28-22:02:57.783120 139716361750912 [db/db_impl/db_impl_open.cc:2632] SstFileManager instance 0x5624a7a1fc00
2026/05/28-22:02:57.783568 139716361750912 [file/delete_scheduler.cc:77] Deleted file /var/lib/stalwart//000101.log immediately, rate_bytes_per_sec 0, total_trash_size 0, total_size 2878120, max_trash_db_ratio 0.250000
2026/05/28-22:02:57.783653 139716361750912 DB pointer 0x5624a7a20b00

2026/05/28-22:02:57.789779 139716311635648 (Original Log Time 2026/05/28-22:02:57.789719) EVENT_LOG_v1 {"time_micros": 1780005777789705, "job": 3, "event": "compaction_finished", "compaction_time_micros": 4891, "compaction_time_cpu_micros": 1268, "output_level": 6, "num_output_files": 1, "total_output_size": 100103, "num_input_records": 37, "num_output_records": 34, "num_subcompactions": 1, "output_compression": "Snappy", "num_single_delete_mismatches": 0, "num_single_delete_fallthrough": 0, "lsm_state": [0, 0, 0, 0, 0, 0, 1], "blob_file_head": 85, "blob_file_tail": 85}
2026/05/28-22:02:57.789946 139716311635648 [file/delete_scheduler.cc:77] Deleted file /var/lib/stalwart//000029.blob immediately, rate_bytes_per_sec 0, total_trash_size 0, total_size 2978223, max_trash_db_ratio 0.250000
2026/05/28-22:02:57.789959 139716311635648 EVENT_LOG_v1 {"time_micros": 1780005777789954, "job": 3, "event": "blob_file_deletion", "file_number": 29, "status": "OK"}

2026/05/28-22:02:57.789959 139716311635648 EVENT_LOG_v1 {"time_micros": 1780005777789954, "job": 3, "event": "blob_file_deletion", "file_number": 29, "status": "OK"}
2026/05/28-22:02:57.790002 139716311635648 [file/delete_scheduler.cc:77] Deleted file /var/lib/stalwart//000043.sst immediately, rate_bytes_per_sec 0, total_trash_size 0, total_size 2425558, max_trash_db_ratio 0.250000
2026/05/28-22:02:57.790007 139716311635648 EVENT_LOG_v1 {"time_micros": 1780005777790005, "job": 3, "event": "table_file_deletion", "file_number": 43, "status": "OK"}

2026/05/28-22:02:57.790007 139716311635648 EVENT_LOG_v1 {"time_micros": 1780005777790005, "job": 3, "event": "table_file_deletion", "file_number": 43, "status": "OK"}
2026/05/28-22:02:57.790037 139716311635648 [file/delete_scheduler.cc:77] Deleted file /var/lib/stalwart//000051.sst immediately, rate_bytes_per_sec 0, total_trash_size 0, total_size 2424365, max_trash_db_ratio 0.250000
2026/05/28-22:02:57.790040 139716311635648 EVENT_LOG_v1 {"time_micros": 1780005777790039, "job": 3, "event": "table_file_deletion", "file_number": 51, "status": "OK"}

2026/05/28-22:02:57.790040 139716311635648 EVENT_LOG_v1 {"time_micros": 1780005777790039, "job": 3, "event": "table_file_deletion", "file_number": 51, "status": "OK"}
2026/05/28-22:02:57.790091 139716311635648 [file/delete_scheduler.cc:77] Deleted file /var/lib/stalwart//000052.blob immediately, rate_bytes_per_sec 0, total_trash_size 0, total_size 2423194, max_trash_db_ratio 0.250000
2026/05/28-22:02:57.790094 139716311635648 EVENT_LOG_v1 {"time_micros": 1780005777790093, "job": 3, "event": "blob_file_deletion", "file_number": 52, "status": "OK"}

2026/05/28-22:02:57.790094 139716311635648 EVENT_LOG_v1 {"time_micros": 1780005777790093, "job": 3, "event": "blob_file_deletion", "file_number": 52, "status": "OK"}
2026/05/28-22:02:57.790144 139716311635648 [file/delete_scheduler.cc:77] Deleted file /var/lib/stalwart//000084.sst immediately, rate_bytes_per_sec 0, total_trash_size 0, total_size 1870529, max_trash_db_ratio 0.250000
2026/05/28-22:02:57.790147 139716311635648 EVENT_LOG_v1 {"time_micros": 1780005777790145, "job": 3, "event": "table_file_deletion", "file_number": 84, "status": "OK"}

2026/05/28-22:02:57.790147 139716311635648 EVENT_LOG_v1 {"time_micros": 1780005777790145, "job": 3, "event": "table_file_deletion", "file_number": 84, "status": "OK"}
2026/05/28-22:02:57.790240 139716311635648 [file/delete_scheduler.cc:77] Deleted file /var/lib/stalwart//000119.sst immediately, rate_bytes_per_sec 0, total_trash_size 0, total_size 1774717, max_trash_db_ratio 0.250000
2026/05/28-22:02:57.790250 139716311635648 EVENT_LOG_v1 {"time_micros": 1780005777790247, "job": 3, "event": "table_file_deletion", "file_number": 119, "status": "OK"}

2026/05/28-22:02:57.792182 139716311635648 (Original Log Time 2026/05/28-22:02:57.792149) EVENT_LOG_v1 {"time_micros": 1780005777792111, "job": 4, "event": "compaction_finished", "compaction_time_micros": 937, "compaction_time_cpu_micros": 388, "output_level": 6, "num_output_files": 1, "total_output_size": 2724, "num_input_records": 138, "num_output_records": 70, "num_subcompactions": 1, "output_compression": "Snappy", "num_single_delete_mismatches": 0, "num_single_delete_fallthrough": 0, "lsm_state": [0, 0, 0, 0, 0, 0, 1]}
2026/05/28-22:02:57.792256 139716311635648 [file/delete_scheduler.cc:77] Deleted file /var/lib/stalwart//000044.sst immediately, rate_bytes_per_sec 0, total_trash_size 0, total_size 1772026, max_trash_db_ratio 0.250000
2026/05/28-22:02:57.792262 139716311635648 EVENT_LOG_v1 {"time_micros": 1780005777792260, "job": 4, "event": "table_file_deletion", "file_number": 44, "status": "OK"}

2026/05/28-22:02:57.792262 139716311635648 EVENT_LOG_v1 {"time_micros": 1780005777792260, "job": 4, "event": "table_file_deletion", "file_number": 44, "status": "OK"}
2026/05/28-22:02:57.792293 139716311635648 [file/delete_scheduler.cc:77] Deleted file /var/lib/stalwart//000054.sst immediately, rate_bytes_per_sec 0, total_trash_size 0, total_size 1770804, max_trash_db_ratio 0.250000
2026/05/28-22:02:57.792297 139716311635648 EVENT_LOG_v1 {"time_micros": 1780005777792295, "job": 4, "event": "table_file_deletion", "file_number": 54, "status": "OK"}

2026/05/28-22:02:57.792297 139716311635648 EVENT_LOG_v1 {"time_micros": 1780005777792295, "job": 4, "event": "table_file_deletion", "file_number": 54, "status": "OK"}
2026/05/28-22:02:57.792404 139716311635648 [file/delete_scheduler.cc:77] Deleted file /var/lib/stalwart//000087.sst immediately, rate_bytes_per_sec 0, total_trash_size 0, total_size 1769604, max_trash_db_ratio 0.250000
2026/05/28-22:02:57.792410 139716311635648 EVENT_LOG_v1 {"time_micros": 1780005777792408, "job": 4, "event": "table_file_deletion", "file_number": 87, "status": "OK"}

2026/05/28-22:02:57.792410 139716311635648 EVENT_LOG_v1 {"time_micros": 1780005777792408, "job": 4, "event": "table_file_deletion", "file_number": 87, "status": "OK"}
2026/05/28-22:02:57.792444 139716311635648 [file/delete_scheduler.cc:77] Deleted file /var/lib/stalwart//000121.sst immediately, rate_bytes_per_sec 0, total_trash_size 0, total_size 1766035, max_trash_db_ratio 0.250000
2026/05/28-22:02:57.792447 139716311635648 EVENT_LOG_v1 {"time_micros": 1780005777792446, "job": 4, "event": "table_file_deletion", "file_number": 121, "status": "OK"}

Stalwart Version

v0.16.x

Installation Method

Docker

Database Backend

RocksDB

Blob Storage

RocksDB

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

What you included in the description are RocksDB logs, not actual log files. You have to enable a log file tracer in order to visualise the logs in the UI.

The tracer is enabled of course, since the installation. I think this is default. I have even raised the loglevel to “trace”, but nothing happens. There are no other logfiles in the container that I could find.
As there is no directory /var/log/stalwart I suspect file / directory permissions problem that is silently blocking stalwart (user stalwart) to write into /var/log.
But since I did not change any settings, is this problem probably inherited.

I have logged into container as root and created:

mkdir -p /var/log/stalwart
chown -R stalwart:stalwart /var/log/stalwart
chmod -R 777 /var/log

and restarted the container. The logs are now working as expected.