SQLite tentativa de gravar um erro de banco de dados somente leitura

Eu tenho um aplicativo de console que preenche um banco de dados SQLite. Quando o aplicativo é executado por si só, não recebo erros. Se eu executar várias instâncias do aplicativo, em que cada aplicativo está em sua própria pasta e cada um preenche seu próprio banco de dados, ocasionalmente receberei a seguinte exceção:

System.Data.SQLite.SQLiteException (0x80004005): Attempt to write a read-only database
attempt to write a readonly database
   at System.Data.SQLite.SQLite3.Reset(SQLiteStatement stmt)
   at System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
   at System.Data.SQLite.SQLiteDataReader.NextResult()
   at System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
   at System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
   at System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()

Eu sei que o banco de dados não é somente leitura porque já gravou dados nesse banco de dados. Além disso, o aplicativo continua e continuará preenchendo dados para esse banco de dados. Não reproduzi o erro quando apenas uma única instância do aplicativo está em execução.

Tentei usar o pragma para manter o diário e o temp_store na memória, em vez de em um arquivo, para o caso de haver alguma disputa entre aplicativos, mas ainda assim recebo o erro. Eu sempre recebo o erro no mesmo método, que é a primeira vez que uma inserção acontece para a conexão. Para dar uma idéia geral do que o aplicativo faz, ele percorre os casos, reúne informações sobre esses casos (não do SQLite) e grava os resultados no banco de dados SQLite.

Não sei mais o que tentar.

* edit Também estou usando o PRAGMA journal_mode = MEMORY. Ao inserir dados no banco de dados SQLite, primeiro executo uma instrução BEGIN e, em seguida, várias inserções antes da instrução END. O erro ocorre na primeira inserção.

questionAnswers(2)

yourAnswerToTheQuestion