Skip to content

fix: resolve db strict mode violation on initialization#885

Merged
tylerjroach merged 2 commits intomasterfrom
fix/db-strict-mode-violation
Jan 22, 2026
Merged

fix: resolve db strict mode violation on initialization#885
tylerjroach merged 2 commits intomasterfrom
fix/db-strict-mode-violation

Conversation

@tylerjroach
Copy link
Contributor

This PR moves the isFirstLaunch check from the main thread to a background thread.

Part of the check was to determine if a mixpanel db was already present on the device. Doing so requires reading from the filesystem and checking if the file exists, which is best handled on an IO thread.

MPDbAdapter now has a getter of isNewDatabase that is true if the db was already present on its initialization. This ensures we don't end up with a race condition of creating a db and checking if it exists.

MPDbAdapter is now only initialized on the message queue (running on a background thread) ensuring all operations are async.

We now send a first open check to the message queue. It runs the first open check, and if it detects a first open, sends an event, then sets the shared prefs hasLaunched value.

FIRST_OPEN should still be the first event sent because it ends up the first message passed to the FIFO queue.

Copy link
Collaborator

@jaredmixpanel jaredmixpanel left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@tylerjroach tylerjroach merged commit 2dda699 into master Jan 22, 2026
4 checks 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