Skip to content

Fix crashing resuable medium order position migration#68

Merged
robbi5 merged 1 commit intomasterfrom
fix-reusablemedium-migration-crash
Jan 26, 2026
Merged

Fix crashing resuable medium order position migration#68
robbi5 merged 1 commit intomasterfrom
fix-reusablemedium-migration-crash

Conversation

@robbi5
Copy link
Contributor

@robbi5 robbi5 commented Jan 26, 2026

The SQLITE_CONSTRAINT_NOTNULL somehow is not happy with LEFT JOIN + WHERE ... IS NOT NULL. Using an (inner) join fixes that.

Crash:

android.database.sqlite.SQLiteConstraintException: NOT NULL constraint failed: ReusableMedium_OrderPosition.OrderPositionId (code 1299 SQLITE_CONSTRAINT_NOTNULL)
at android.database.sqlite.SQLiteConnection.nativeExecuteForChangedRowCount(Native Method)
at android.database.sqlite.SQLiteConnection.executeForChangedRowCount(SQLiteConnection.java:913)
at android.database.sqlite.SQLiteSession.executeForChangedRowCount(SQLiteSession.java:756)
at android.database.sqlite.SQLiteStatement.executeUpdateDelete(SQLiteStatement.java:67)
at androidx.sqlite.db.framework.FrameworkSQLiteStatement.executeUpdateDelete(FrameworkSQLiteStatement.android.kt:34)
at app.cash.sqldelight.driver.android.AndroidPreparedStatement.execute(AndroidSqliteDriver.kt:261)
at app.cash.sqldelight.driver.android.AndroidSqliteDriver.execute$lambda$10(AndroidSqliteDriver.kt:184)
at app.cash.sqldelight.driver.android.AndroidSqliteDriver.$r8$lambda$On4hAq_M-pNnyeUgfFbsObZI6Yw(Unknown Source:0)
at app.cash.sqldelight.driver.android.AndroidSqliteDriver$$ExternalSyntheticLambda4.invoke(D8$$SyntheticClass:0)
at app.cash.sqldelight.driver.android.AndroidSqliteDriver.execute-zeHU3Mk(AndroidSqliteDriver.kt:169)
at app.cash.sqldelight.driver.android.AndroidSqliteDriver.execute(AndroidSqliteDriver.kt:184)
at app.cash.sqldelight.db.SqlDriver$DefaultImpls.execute$default(SqlDriver.kt:63)
at eu.pretix.pretixscan.sqldelight.app.SyncDatabaseImpl$Schema.migrateInternal-ElmaSbI(SyncDatabaseImpl.kt:896)
at eu.pretix.pretixscan.sqldelight.app.SyncDatabaseImpl$Schema.migrate-zeHU3Mk(SyncDatabaseImpl.kt:935)
at eu.pretix.pretixscan.sqldelight.app.SyncDatabaseImpl$Schema.migrate(SyncDatabaseImpl.kt:168)
at app.cash.sqldelight.driver.android.AndroidSqliteDriver$Callback.onUpgrade(AndroidSqliteDriver.kt:215)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.onUpgrade(FrameworkSQLiteOpenHelper.android.kt:245)
at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:416)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:316)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getWritableOrReadableDatabase(FrameworkSQLiteOpenHelper.android.kt:224)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.innerGetDatabase(FrameworkSQLiteOpenHelper.android.kt:180)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper$OpenHelper.getSupportDatabase(FrameworkSQLiteOpenHelper.android.kt:141)
at androidx.sqlite.db.framework.FrameworkSQLiteOpenHelper.getWritableDatabase(FrameworkSQLiteOpenHelper.android.kt:96)
at app.cash.sqldelight.driver.android.AndroidSqliteDriver.database_delegate$lambda$0(AndroidSqliteDriver.kt:41)
at app.cash.sqldelight.driver.android.AndroidSqliteDriver.$r8$lambda$-C5KwUQefNh6zT_6DC4RQ8hhrAo(Unknown Source:0)
at app.cash.sqldelight.driver.android.AndroidSqliteDriver$$ExternalSyntheticLambda2.invoke(D8$$SyntheticClass:0)
at kotlin.SynchronizedLazyImpl.getValue(LazyJVM.kt:86)
at app.cash.sqldelight.driver.android.AndroidSqliteDriver.getDatabase(AndroidSqliteDriver.kt:40)
at app.cash.sqldelight.driver.android.AndroidSqliteDriver.executeQuery_0yMERmw$lambda$11(AndroidSqliteDriver.kt:192)
at app.cash.sqldelight.driver.android.AndroidSqliteDriver.$r8$lambda$DVkno8MHZS_Nyt__IJpDt7Bqbs4(Unknown Source:0)
at app.cash.sqldelight.driver.android.AndroidSqliteDriver$$ExternalSyntheticLambda0.invoke(D8$$SyntheticClass:0)
at app.cash.sqldelight.driver.android.AndroidSqliteDriver.execute-zeHU3Mk(AndroidSqliteDriver.kt:163)
at app.cash.sqldelight.driver.android.AndroidSqliteDriver.executeQuery-0yMERmw(AndroidSqliteDriver.kt:192)
at app.cash.sqldelight.driver.android.AndroidSqliteDriver.executeQuery(AndroidSqliteDriver.kt:29)
at app.cash.sqldelight.SimpleQuery.execute(Query.kt:98)
at app.cash.sqldelight.ExecutableQuery.executeAsOneOrNull(Query.kt:198)
at app.cash.sqldelight.ExecutableQuery.executeAsOne(Query.kt:188)
at eu.pretix.pretixscan.droid.ui.MainActivity.reloadSyncStatus(MainActivity.kt:357)
at eu.pretix.pretixscan.droid.ui.MainActivity.reload(MainActivity.kt:216)
at eu.pretix.pretixscan.droid.ui.MainActivity.onResume(MainActivity.kt:782)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1564)
at android.app.Activity.performResume(Activity.java:8474)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:4764)
... 13 more

@robbi5 robbi5 merged commit c5e1aad into master Jan 26, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants