-
Notifications
You must be signed in to change notification settings - Fork 539
Soft lock on large mms:downloaded webhooks #336
Description
Describe the Bug
While testing I did encounter an issue with MMS. Works with normal images which get's compressed on sending. The issue occured when an iPhone user sent a larger image which did not get compressed or was of a larger dimension. With this image in the queue nothing else is able to be received and passed on to the webhooks.
Before this MMS there was about 30 SMS and 1 MMS in the logs. The one previous MMS were 225 KB
Opening the logs in the app right after the MMS was received did cause a crash. Screenshot is from a while after.
Force close and restart the app does not resolve the issue
To Reproduce
Steps to reproduce the behavior:
- Set up webhook for mms:downloaded
- Send a large attachment. File which got stuck: 1,8 MB (1 796 375 bytes) Image (image/jpeg)
- The system should now be in a lock
Expected vs Actual Behavior
- Expected: The attachment to be passed to the server using the websocket mms:downloaded
- Actual: Soft locked
Environment
- App Version: 1.56.0(1373)
- Mode: Local
- Operation: receiving MMS
- Integration: Deno 2.7.10 server with HTTPS self signed certificates.
- Network Type: WiFi
Smartphone
- Device: Moto G84
- OS: Android 15
- SIM Card Count: 1 SIM
Additional Context
Logs from when the MMS was received
{
"message": "Row too big to fit into CursorWindow requiredPos=79, totalRows=80"
}From when a SMS is received at a later point with a timestamp inbetween when MMS and SMS were received
{
"context": {
"attempt": 9
},
"createdAt": "2026-04-01T21:31:27.590+02:00",
"id": 838,
"message": "Starting webhook queue processing",
"module": "webhooks",
"priority": "DEBUG"
},
{
"context": {
"error": "android.database.sqlite.SQLiteBlobTooBigException: Row too big to fit into CursorWindow requiredPos=0, totalRows=6"
},
"createdAt": "2026-04-01T21:31:27.642+02:00",
"id": 839,
"message": "Error processing batch: Row too big to fit into CursorWindow requiredPos=0, totalRows=6",
"module": "webhooks",
"priority": "ERROR"
},
{
"context": {
"error": "android.database.sqlite.SQLiteBlobTooBigException: Row too big to fit into CursorWindow requiredPos=0, totalRows=6"
},
"createdAt": "2026-04-01T21:31:27.644+02:00",
"id": 840,
"message": "Error during webhook queue processing: Row too big to fit into CursorWindow requiredPos=0, totalRows=6",
"module": "webhooks",
"priority": "ERROR"
},
{
"context": {
"error": "android.database.sqlite.SQLiteBlobTooBigException: Row too big to fit into CursorWindow requiredPos=0, totalRows=6",
"stackTrace": "android.database.sqlite.SQLiteBlobTooBigException: Row too big to fit into CursorWindow requiredPos=0, totalRows=6\n\tat android.database.sqlite.SQLiteConnection.nativeExecuteForCursorWindow(Native Method)\n\tat android.database.sqlite.SQLiteConnection.executeForCursorWindow(SQLiteConnection.java:1037)\n\tat android.database.sqlite.SQLiteSession.executeForCursorWindow(SQLiteSession.java:862)\n\tat android.database.sqlite.SQLiteQuery.fillWindow(SQLiteQuery.java:62)\n\tat android.database.sqlite.SQLiteCursor.fillWindow(SQLiteCursor.java:145)\n\tat android.database.sqlite.SQLiteCursor.getCount(SQLiteCursor.java:132)\n\tat me.capcom.smsgateway.modules.webhooks.db.WebhookQueueDao_Impl$17.call(WebhookQueueDao_Impl.java:446)\n\tat me.capcom.smsgateway.modules.webhooks.db.WebhookQueueDao_Impl$17.call(WebhookQueueDao_Impl.java:433)\n\tat androidx.room.CoroutinesRoom$Companion$execute$4$job$1.invokeSuspend(CoroutinesRoom.kt:88)\n\tat kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)\n\tat kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1154)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:652)\n\tat java.lang.Thread.run(Thread.java:1563)\n"
},
"createdAt": "2026-04-01T21:31:27.646+02:00",
"id": 841,
"message": "Webhook queue processing failed: Row too big to fit into CursorWindow requiredPos=0, totalRows=6",
"module": "webhooks",
"priority": "ERROR"
},** Screenshot **
