According to your pragmas you have vacuum done once in a while. Vacuum alters the rowid values of a table, unless the rowid is declared explicitly as "INTEGER PRIMARY KEY" (probably not the case here). See from here <https://www.sqlite.org/rowidtable.html> :
/If the rowid is not aliased by INTEGER PRIMARY KEY then it is not persistent and might change. In particular the VACUUM command will change rowids for tables that do not declare an INTEGER PRIMARY KEY. Therefore, applications should not normally access the rowid directly, but instead use an INTEGER PRIMARY KEY. / Once rowids change, the references between the fts table to the content table are broken. -- Sent from: http://sqlite.1065341.n5.nabble.com/ _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users