Unrecoverable storage corruption detected: column version mismatch

Hi everyone.
A few days ago I created this table:

CREATE TABLE 'sensor_data' ( 
	index_time TIMESTAMP,
	DT VARCHAR,
	DPB DOUBLE,
	DPH DOUBLE,
	RS DOUBLE,
	HP DOUBLE,
	SPP DOUBLE,
	CH DOUBLE,
	PS1 DOUBLE,
	PS2 DOUBLE,
	PS3 DOUBLE,
	PS4 DOUBLE,
	CIV DOUBLE,
	CDO DOUBLE,
	CDI DOUBLE
) timestamp(index_time) PARTITION BY DAY
DEDUP UPSERT KEYS(index_time);

Then I populated it with 242653 rows.

Today when I start this database I read the message:

2026-04-07T08:47:40.587057Z C i.q.c.p.WriterPool could not open [table=sensor_data~807, thread=35, msg=Unrecoverable storage corruption detected: column version mismatch [table=sensor_data~807, txnVersion=157032, actualFileVersion=156258], errno=0]
2026-04-07T08:47:40.591406668Z 2026-04-07T08:47:40.587205Z C i.q.c.w.ApplyWal2TableJob job failed, table suspended [table=sensor_data~807, error=io.questdb.cairo.CairoException: [0] Unrecoverable storage corruption detected: column version mismatch [table=sensor_data~807, txnVersion=157032, actualFileVersion=156258]
2026-04-07T08:47:40.591411127Z 	at io.questdb.cairo.CairoException.instance(CairoException.java:387)
2026-04-07T08:47:40.591413210Z 	at io.questdb.cairo.CairoException.critical(CairoException.java:80)
2026-04-07T08:47:40.591414668Z 	at io.questdb.cairo.TableWriter.<init>(TableWriter.java:454)
2026-04-07T08:47:40.591416043Z 	at io.questdb.cairo.TableWriter.<init>(TableWriter.java:357)
2026-04-07T08:47:40.591417335Z 	at io.questdb.cairo.pool.WriterPool.createWriter(WriterPool.java:400)
2026-04-07T08:47:40.591418543Z 	at io.questdb.cairo.pool.WriterPool.getWriterEntry(WriterPool.java:446)
2026-04-07T08:47:40.591419752Z 	at io.questdb.cairo.pool.WriterPool.get(WriterPool.java:149)
2026-04-07T08:47:40.591466168Z 	at io.questdb.cairo.CairoEngine.getWriterUnsafe(CairoEngine.java:1264)
2026-04-07T08:47:40.591469377Z 	at io.questdb.cairo.wal.ApplyWal2TableJob.applyWal(ApplyWal2TableJob.java:929)
2026-04-07T08:47:40.591470752Z 	at io.questdb.cairo.wal.ApplyWal2TableJob.doRun(ApplyWal2TableJob.java:989)
2026-04-07T08:47:40.591472085Z 	at io.questdb.mp.AbstractQueueConsumerJob.run(AbstractQueueConsumerJob.java:50)
2026-04-07T08:47:40.591473377Z 	at io.questdb.mp.Worker.run(Worker.java:152)

Even running
ALTER TABLE sensor_data RESUME WAL;
doesn’t fix it.

How can I solve it?
Thank you.

Hey @BepTheWolf , did you encounter some sort of failure? Storage died, ran out of disk, power loss etc.?

No, nothing strange.
I turned off the PC normally and turned it back on today. I’m testing with a MacPro, so I don’t have any power outages and the disk still has 90GB free.

I turned it off after the program inserted the 242653 rows and maybe there were some aborted transactions left?

with the query
SELECT * FROM wal_tables() WHERE name='sensor_data';
I see

That’s strange, if it wasn’t a hard fault, a corruption is unexpected. Did you perhaps hit open file limits? Mac is notorious for being difficult to raise them.

Perhaps you can find some ‘ E ‘ or ‘ C ‘ errors in the logs? Or feel free to DM them to me to take a look. Definitely want to identify a cause here, this is abnormal behaviour.