Skip to content

[PM-41059] fix: CXF import crash when credential timestamps contain negative values (e.g., Windows FILETIME epoch -11644473600 from Google Password Manager exports). - #7216

Open
crosenth wants to merge 2 commits into
bitwarden:mainfrom
crosenth:main

Conversation

@crosenth

Copy link
Copy Markdown

🎟️ Tracking

#7140

#7215

https://bitwarden.atlassian.net/browse/PM-40542

📔 Objective

Fixes bug:

Stacktrace:
com.bitwarden.sdk.BitwardenException$Export: v1=com.bitwarden.exporters.ExportException$Cxf: Credential Exchange error: JSON error: invalid value: integer -11644473600, expected u64 at line 1 column 61701
com.bitwarden.sdk.FfiConverterTypeBitwardenError.read(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:174)
com.bitwarden.sdk.FfiConverterTypeBitwardenError.read(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:515)
com.bitwarden.sdk.FfiConverter$DefaultImpls.liftFromRustBuffer(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:11)
com.bitwarden.sdk.FfiConverterRustBuffer$DefaultImpls.liftFromRustBuffer(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:4)
com.bitwarden.sdk.FfiConverterTypeBitwardenError.liftFromRustBuffer(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:1)
com.bitwarden.sdk.FfiConverterTypeBitwardenError.liftFromRustBuffer(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:8)
com.bitwarden.sdk.FfiConverterRustBuffer$DefaultImpls.lift(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:4)
com.bitwarden.sdk.FfiConverterTypeBitwardenError.lift(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:1)
com.bitwarden.sdk.FfiConverterTypeBitwardenError.lift(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:8)
com.bitwarden.sdk.BitwardenException$ErrorHandler.lift(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:6)
com.bitwarden.sdk.BitwardenException$ErrorHandler.lift(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:13)
com.bitwarden.sdk.Bitwarden_uniffiKt.uniffiCheckCallStatus(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:79)
com.bitwarden.sdk.Bitwarden_uniffiKt.access$uniffiCheckCallStatus(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:1)
com.bitwarden.sdk.ExporterClient.importCxf(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:66)
rpb.Z(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:75)
db2.a(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:133)
hnb.T(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:91)
br4.invokeSuspend(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:51)
vo0.resumeWith(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:8)
qw2.run(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:114)
qb3.t0(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:24)
ng1.o(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:93)
ng1.s(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:3)
l41.a(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:7)
j41.R(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:69)
j41.d(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:53)
j41.b(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:104)
com.bitwarden.ui.platform.base.BaseViewModel.trySendAction(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:3)
ip.invokeSuspend(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:1362)
vo0.resumeWith(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:8)
qw2.run(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:114)
xr.p0(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:24)
wr.run(r8-map-id-3711f003cf7d2a46fb8ec7e8ada71c46655423e03b475b325f07a00886353258:3)
android.os.Handler.handleCallback(Handler.java:1095)
android.os.Handler.dispatchMessageImpl(Handler.java:135)
android.os.Handler.dispatchMessage(Handler.java:125)
android.os.Looper.loopOnce(Looper.java:296)
android.os.Looper.loop(Looper.java:397)
android.app.ActivityThread.main(ActivityThread.java:9523)
java.lang.reflect.Method.invoke(Native Method)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:575)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:939)

Version: 2026.6.1 (21713)
Device: 📱 google Pixel 9 🤖 17@37 📦 prod
CI: 🧱 commit: e5ee43f
💻 build source: bitwarden/android/actions/runs/28253991408/attempts/1

@crosenth
crosenth requested review from a team and david-livefront as code owners July 28, 2026 16:14
@CLAassistant

CLAassistant commented Jul 28, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@bitwarden-bot

Copy link
Copy Markdown
Collaborator

Thank you for your contribution! We've added this to our internal tracking system for review.
ID: PM-41059
Link: https://bitwarden.atlassian.net/browse/PM-41059

Details on our contribution process can be found here: https://contributing.bitwarden.com/contributing/pull-requests/community-pr-process.

@bitwarden-bot bitwarden-bot changed the title Fix CXF import crash when credential timestamps contain negative values (e.g., Windows FILETIME epoch -11644473600 from Google Password Manager exports). [PM-41059] Fix CXF import crash when credential timestamps contain negative values (e.g., Windows FILETIME epoch -11644473600 from Google Password Manager exports). Jul 28, 2026
@crosenth crosenth changed the title [PM-41059] Fix CXF import crash when credential timestamps contain negative values (e.g., Windows FILETIME epoch -11644473600 from Google Password Manager exports). [PM-41059] fix: CXF import crash when credential timestamps contain negative values (e.g., Windows FILETIME epoch -11644473600 from Google Password Manager exports). Jul 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[PM-41044] Passkeys import from other app doesn't work on Android 17 [PM-39931] "Import from another app" only evokes an error message

3 participants