As for what's causing this, cuirass's bin/evaluate seems to connect to the sqlite database and then write stuff into it. If a query is being done by the http server at the same time, you are going to be really careful with the sqlite open mode. There would be ways to still be able to do this, but it's some seriously unnecessary locking complexity for something small like this. Is that really necessary? Can't the invoker of bin/evaluate write the result? It even seems that src/cuirass/base.scm already does the db-add-derivation. Why is bin/evaluate doing it again? Same for db-add-evaluation...