Known issues
The bugs we know about, their workarounds and the releases that fixed them. Check here before you debug your own code.
Last updated
2026-10-07
Latest engine
v0.52.2
Open issues
3
LYEVE-006 Open medium engine SQL Server needs snapshot reads enabled before it takes traffic
LYEVE-006 Open medium engine SQL Server needs snapshot reads enabled before it takes traffic
Without read committed snapshot isolation, SQL Server takes shared locks for reads, so an ordinary SELECT can be picked as the victim of a deadlock with a concurrent write and the request fails. The same workload never deadlocks on PostgreSQL or MySQL. The engine checks this at boot and logs the exact statements when either database is missing the setting. It does not run them itself: the ALTER waits for exclusive access with no lock timeout, so issuing it against a live database blocks until every other session disconnects, and the ROLLBACK IMMEDIATE form disconnects them instead. Choosing the window is the operator's call.
Workaround
Run both statements in a maintenance window: ALTER DATABASE [your_db] SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK IMMEDIATE; and ALTER DATABASE [model] SET READ_COMMITTED_SNAPSHOT ON; The second matters on multi-tenant installs, because a tenant database created afterwards inherits the setting.
LYEVE-005 Open low plugin-storage Presigned and multipart uploads return 501 on the local storage driver
LYEVE-005 Open low plugin-storage Presigned and multipart uploads return 501 on the local storage driver
Presigning and multipart are driver capabilities rather than engine features. The local filesystem driver implements neither, so the five presign and multipart routes answer 501 Not Implemented on an install whose selected provider is local. This is the deliberate answer: the operation is not implemented by this deployment's driver, which is a property of the configuration and not a fault, so it is not reported as a 500.
Workaround
Configure an S3, MinIO, GCS or Azure Blob provider for any deployment whose clients upload directly or in parts.
LYEVE-004 Open low engine Repeating a GDPR erasure can report one affected row on SQL Server
LYEVE-004 Open low engine Repeating a GDPR erasure can report one affected row on SQL Server
Running the same erasure twice against SQL Server can report a non-zero affected-row count on the second pass where PostgreSQL and MySQL report zero. The first pass anonymizes the subject's address and leaves the account row, and a row written between the two passes carries the already anonymized address, so the second pass matches it. The end state is correct either way. Only the count is misleading.
Workaround
Confirm the end state rather than the count. A repeat erasure that reports one row has still left nothing identifying behind.
LYEVE-003 Fixed high plugin-ai
fixed in v0.7.4 AI provider list was not tenant-scoped when the tenant header was omitted
LYEVE-003 Fixed high plugin-ai
fixed in v0.7.4 AI provider list was not tenant-scoped when the tenant header was omitted
A request that omitted the tenant header took a branch that listed every tenant's configured providers instead of none. The list now fails closed: a request with no resolvable tenant is refused rather than answered from an unscoped query.
LYEVE-002 Fixed medium plugin-mfa
fixed in v0.5.3 Admin MFA reset refused the platform super_admin
LYEVE-002 Fixed medium plugin-mfa
fixed in v0.5.3 Admin MFA reset refused the platform super_admin
The endpoint is restricted to platform-level super_admins and identified them by an empty tenant claim. Tenancy resolution stamps a tenant on every authenticated caller, so the platform account carried the default tenant and was refused by the guard meant to protect it. The check now refuses only a caller scoped to a real tenant.
LYEVE-001 Fixed medium plugin-events
fixed in v0.5.3 Two concurrent event replays were both accepted
LYEVE-001 Fixed medium plugin-events
fixed in v0.5.3 Two concurrent event replays were both accepted
Starting a replay checked for a running one and then created a record, with nothing between the two steps, so two requests arriving together both passed the check and both were accepted. The check and the create are now serialized, and only one of a concurrent pair is accepted.
How this list works
- · Reconciled against the engine on each release. The date above is when that last happened. Each entry has an ID, a severity and the part of the product it affects.
- · Open: we have reproduced it and not shipped a fix. In progress: a fix is being written. Fixed: shipped in the labeled release.
- · Workarounds are tested. If a workaround stops working after a release, we move it back to "open" with a new ID.
- · Found something not on the list? Email bugs@lyeve.com with the version you are running and how to reproduce it. Reproducible reports get an entry on this page.
- · Every entry cites something you can check yourself: a released tag, an error the engine returns, or a line it writes to its log. An entry that cannot be checked does not go on this page.