Common ClickHouse® disk errors and fixes
Each page starts from one error message or symptom in self-hosted Langfuse, SigNoz or ClickStack. It gives a read-only check, the fix, and the versions it was tested on. For the whole picture, from the first check to a TTL that keeps the logs small, read the guide.
- system.trace_log and text_log are huge: how to fix it
Why system.trace_log and text_log fill the disk in self-hosted ClickHouse, how to empty them now and add a TTL so they stay small.
- Code 243: Cannot reserve 1.00 MiB, not enough space
ClickHouse says Cannot reserve 1.00 MiB, not enough space (NOT_ENOUGH_SPACE). At 100% even TRUNCATE fails. What still works and how to free space.
- Code 359: Table or Partition was not dropped (max_table_size_to_drop, 50 GB)
TRUNCATE or DROP over 50 GB fails with Code 359 TABLE_SIZE_EXCEEDS_MAX_DROP_SIZE_LIMIT. Lift the limit for one statement or use the force_drop_table flag.
- trace_log_0 and query_log_1: old system log copies
What trace_log_0, query_log_1 and other _N system tables are, why they have no TTL, and how to drop them safely.
- Code 36: TTL parameters should be specified directly inside 'engine'
ClickHouse exits with Code 36 after you add a TTL for opentelemetry_span_log. Put the TTL inside <engine> or switch the log off.
- TTL not deleting old data, or DELETE not freeing disk
Rows are expired or deleted but ClickHouse disk stays full. Why TTL and lightweight DELETE wait for merges, and how to force them.
- Code 252: Too many parts. Merges are processing significantly slower than inserts
What Too many parts (Code 252, TOO_MANY_PARTS) means, how to check parts, merges and free space, and how to fix it with fewer, bigger inserts.
- Cannot log message in OwnAsyncSplitChannel channel
ClickHouse can't write its log file, floods stderr and Docker's json log, and burns CPU. Why it happens and how to stop it.