Installation details
#ScyllaDB version: 2025.4.5-0
#Cluster size:
os windows scylla on docker image scylladb/scylla:latest
Issue
When performing an INSERT followed immediately by an UPDATE using IF conditions (LWT), the update sometimes returns:
[applied]: true
However, the row data does not reflect the update. The data remains identical to the initial INSERT.
If a small delay is added between INSERT and UPDATE, the issue does not occur.
If LWT is removed from the UPDATE, the issue also does not occur.
my schema:
CREATE TABLE IF NOT EXISTS temp_file (
id text,
user_id text,
topic_id text,
files list<frozen<file_item>>,
owner text,
version bigint,
updated_at timestamp,
created_at timestamp,
PRIMARY KEY ((user_id, topic_id))
);
this is my code
this.scylla.execute(
`INSERT INTO temp_file JSON ? IF NOT EXISTS;`,
[JSON.stringify(this.preInsert(data))],
{
prepare: true
},
)
// some logic
this.scylla.execute(
`UPDATE temp_file SET files = ?, updated_at = ?, version = ? WHERE user_id = ? AND topic_id = ? IF owner = ? AND version = ?;`,
[
[
{
folder: 'images',
type: 'image',
variants: [
{
url: 'https://dl.example.ir/images/g-QLT-640.webp',
size: 0,
is_original: false,
content_type: 'image/webp'
}
]
}
],
2026-04-17T10:06:11.130Z,
Long { low: 1, high: 0, unsigned: false },
'1',
'MigLnFKX9VhlcBWf1',
'1',
Long { low: 0, high: 0, unsigned: false }
],
{
prepare: true
},
)
the response which is the same with correct one but data in db didn’t change:
ResultSet {
info: {
queriedHost: '127.0.0.1:9042',
triedHosts: { '127.0.0.1:9042': null },
speculativeExecutions: 0,
achievedConsistency: 1,
traceId: undefined,
warnings: undefined,
customPayload: undefined,
isSchemaInAgreement: true
},
rows: [
Row {
'[applied]': true,
owner: '1',
version: Long { low: 0, high: 0, unsigned: false }
}
],
rowLength: 1,
columns: [
{ name: '[applied]', type: { code: 4, type: null } },
{ name: 'owner', type: { code: 13, type: null } },
{ name: 'version', type: { code: 2, type: null } }
],
pageState: null,
nextPage: undefined,
nextPageAsync: undefined
}