Skip to content

Ensure color column exists before query in legacy DB migration#14518

Closed
jayaddison wants to merge 1 commit intosignalapp:mainfrom
jayaddison:issue-14228/ensure-recipient-color-column-during-legacy-migration
Closed

Ensure color column exists before query in legacy DB migration#14518
jayaddison wants to merge 1 commit intosignalapp:mainfrom
jayaddison:issue-14228/ensure-recipient-color-column-during-legacy-migration

Conversation

@jayaddison
Copy link
Copy Markdown

Contributor checklist

  • Device A, Android X.Y.Z
  • Device B, Android Z.Y
  • Virtual device W, Android Y.Y.Z
  • My contribution is fully baked and ready to be merged as is
  • I ensure that all the open issues my contribution fixes are mentioned in the commit message of my first commit using the Fixes #1234 syntax

Description

I have an old-ish Android 6.x device that I previously used Signal on. The database schema has gotten into a state where the updateSystemContactColors migration fails due to a missing color column on the recipient table.

The failure prevents the Signal user interface from opening, locking me out of historical conversations and media I'd like to retain.

That database migration has been deprecated since Y2021 (ref: bcc5d48).

This pull request adds an error-ignored step to add the column before it is queried (as far as I know, SQLite has no add column if not exists functionality). I have not yet tested this, but believe that it would solve the problem.

I have not been able to decrypt the database from my device to test this with, and I am not keen to root the device purely to install an unsigned test build.

May resolve #14228.

@jayaddison jayaddison marked this pull request as ready for review January 10, 2026 12:42
@jayaddison
Copy link
Copy Markdown
Author

I'm uncomfortable with the way that I offensively dismissed what I felt to be a spammy issue request about AI in an unrelated FOSS project thread yesterday (2026-02-14). I mention this in case you'd prefer not to accept my contributions; however you are still welcome to. I don't use AI myself and would like not to be critical of those who do, but I was angry.

@jayaddison
Copy link
Copy Markdown
Author

Please could someone review this pull request? I believe that this device is at Android SDK API level 23, and that it remains narrowly within the supported version window:

Thank you,
James

@greyson-signal
Copy link
Copy Markdown
Contributor

Hey sorry, sometimes things get missed. I don't think I want to add the column back, since this column was removed. Instead, I think I can just remove the migration overall, so it doesn't run and assume the existence of a removed column.

@greyson-signal
Copy link
Copy Markdown
Contributor

I've made that change in the candidate 8.2 release.

@jayaddison
Copy link
Copy Markdown
Author

That's OK - and thank you, @greyson-signal. I'll await the 8.2 release, and will close this pull request - thanks again.

@jayaddison jayaddison closed this Mar 2, 2026
@jayaddison jayaddison deleted the issue-14228/ensure-recipient-color-column-during-legacy-migration branch March 2, 2026 19:46
greyson-signal added a commit that referenced this pull request Mar 4, 2026
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.

MigrationJob: crash on app open with SQL error "no such column: color"

2 participants