SqliteCache database is locked error in output log

I’m not quite sure what started this issue occurring (I’ve been successfully using the same code for a while now) - but now, when I start my app and when I interact with Cesium actors at runtime, I get several hundred of these messages in the log:

LogCesium: Error: [2023-12-17 16:50:44.259] [error] [SqliteCache.cpp:441] database is locked

Note that my app still appears to function correctly (running as PIE). However, I’m concerned that this will cause a crash when packaged for release.

I found this (very old, closed) issue on github: In Shipping builds, Cesium for Unreal ends up using UE's SQLite, causing crashes · Issue #245 · CesiumGS/cesium-unreal · GitHub

One solution, if I’m reading things right, is to disable the SQLite plugin. But I’m also using the USD plugin - and it relies on this plugin.

I’m using Unreal Engine for version 5.2.1 built from source code - which is also building the Cesium plugin from source. I need to build from source so as to be able to use the USD plugin at run time.

I know this isn’t a very helpful bug report. I’ll dig in deeper to see if I can find the cause - but checking out all the latest code and rebuilding from scratch is gonna take a while…

However, does anyone have any ideas? @Kevin_Ring - you were a key actor on that issue thread. Do you have any ideas?

Many thanks.

That message is usually caused by running two copies of your application at once. Even running a built application plus the Editor can trigger it. It’s mostly harmless, except that performance may suffer a bit because previous requests can’t be retrieved from the cache.

If you’re not running two copies, the other possibility is that the database is being stored on a network drive or some other kind of unusual drive that doesn’t support SQLite’s locking scheme. There’s a mesasage in the log at startup that tells you where the request database is stored.

1 Like

Bingo! That was it. Many thanks.