[GH-ISSUE #6486] [BWA-228] The system crashed while viewing a password item. #8490

Open
opened 2026-04-11 01:50:31 -05:00 by GiteaMirror · 11 comments
Owner

Originally created by @A3148475824 on GitHub (Feb 6, 2026).
Original GitHub issue: https://github.com/bitwarden/android/issues/6486

Steps To Reproduce

The system crashed while viewing a password item.

Expected Result

I used the third-party client Keyguard to check this password item, and it didn't crash! I asked Chatgpt, and Bitwarden mentioned a UI bug on the Android side (Jetpack Compose's LazyColumn key conflict)! Compose doesn't allow it, throwing an exception directly → App crashes.

Actual Result

Then I checked the password item, and I tried to check two identical tags. I only saw two blank tags. I deleted one of the blank tags, and then it stopped crashing! It's really funny!

Screenshots or Videos

java.lang.IllegalArgumentException: Key "customField_TextField(id=953827747, name=, value=​, isCopyable=false)" was already used. If you are using LazyColumn/Row please make sure you provide a unique key for each item.
at d4.a.a(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:3)
at e4.j0.n0(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:156)
at v1.l0.d(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:30)
at u1.m.a(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:32)
at u1.n.a(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:783)
at t2.q.invoke(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:1121)
at e4.l0.c(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:71)
at g4.t.H(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:38)
at o3.o0.measure-3p2s80s(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:1)
at g4.a0.H(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:11)
at v1.r.measure-3p2s80s(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:1)
at g4.a0.H(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:11)
at s1.d0.measure-3p2s80s(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:106)
at g4.a0.H(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:11)
at s1.d0.measure-3p2s80s(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:106)
at g4.a0.H(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:11)
at g4.a1.invoke(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:127)
at f3.v.d(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:314)
at g4.b1.E0(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:147)
at g4.i0.P(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:18)
at g4.y0.c(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:3)
at g4.y0.k(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:126)
at h4.v.t(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:8)
at g4.i0.k(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:41)
at pl.i.invoke(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:531)
at o1.n.a(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:17)
at o1.p2.c(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:260)
at o1.n2.a(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:423)
at o1.l2.a(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:38)
at np.n3.invoke(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:899)
at k1.d.l(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:55)
at k1.f1.invoke(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:25)
at f3.n.invoke(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:35)
at a2.b.invoke(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:740)
at androidx.lifecycle.d1.l(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:49)
at t2.s1.invoke(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:58)
at h4.v0.doFrame(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:7)
at h4.t0.doFrame(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:48)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1797)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1808)
at android.view.Choreographer.doCallbacks(Choreographer.java:1300)
at android.view.Choreographer.doFrame(Choreographer.java:1167)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1767)
at android.os.Handler.handleCallback(Handler.java:959)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loopOnce(Looper.java:249)
at android.os.Looper.loop(Looper.java:337)
at android.app.ActivityThread.main(ActivityThread.java:9410)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:614)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1005)
Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [h4.h2@3fb322e, h4.w0@8d291cf, s1{Cancelling}@f2f575c, u0@ee6a65]

Additional Context

No response

Build Version

2026.1.1

What server are you connecting to?

US

Self-host Server Version

No response

Environment Details

Redmi K60 Ultra
Android 15

Issue Tracking Info

  • I understand that work is tracked outside of Github. A PR will be linked to this issue should one be opened to address it, but Bitwarden doesn't use fields like "assigned", "milestone", or "project" to track progress.
Originally created by @A3148475824 on GitHub (Feb 6, 2026). Original GitHub issue: https://github.com/bitwarden/android/issues/6486 ### Steps To Reproduce The system crashed while viewing a password item. ### Expected Result I used the third-party client Keyguard to check this password item, and it didn't crash! I asked Chatgpt, and Bitwarden mentioned a UI bug on the Android side (Jetpack Compose's LazyColumn key conflict)! Compose doesn't allow it, throwing an exception directly → App crashes. ### Actual Result Then I checked the password item, and I tried to check two identical tags. I only saw two blank tags. I deleted one of the blank tags, and then it stopped crashing! It's really funny! ### Screenshots or Videos java.lang.IllegalArgumentException: Key "customField_TextField(id=953827747, name=, value=​, isCopyable=false)" was already used. If you are using LazyColumn/Row please make sure you provide a unique key for each item. at d4.a.a(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:3) at e4.j0.n0(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:156) at v1.l0.d(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:30) at u1.m.a(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:32) at u1.n.a(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:783) at t2.q.invoke(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:1121) at e4.l0.c(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:71) at g4.t.H(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:38) at o3.o0.measure-3p2s80s(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:1) at g4.a0.H(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:11) at v1.r.measure-3p2s80s(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:1) at g4.a0.H(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:11) at s1.d0.measure-3p2s80s(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:106) at g4.a0.H(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:11) at s1.d0.measure-3p2s80s(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:106) at g4.a0.H(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:11) at g4.a1.invoke(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:127) at f3.v.d(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:314) at g4.b1.E0(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:147) at g4.i0.P(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:18) at g4.y0.c(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:3) at g4.y0.k(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:126) at h4.v.t(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:8) at g4.i0.k(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:41) at pl.i.invoke(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:531) at o1.n.a(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:17) at o1.p2.c(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:260) at o1.n2.a(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:423) at o1.l2.a(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:38) at np.n3.invoke(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:899) at k1.d.l(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:55) at k1.f1.invoke(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:25) at f3.n.invoke(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:35) at a2.b.invoke(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:740) at androidx.lifecycle.d1.l(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:49) at t2.s1.invoke(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:58) at h4.v0.doFrame(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:7) at h4.t0.doFrame(r8-map-id-02fdf5f89272614ec878de7adda5f42926f9802f10b5d99996c77817a23b127e:48) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1797) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1808) at android.view.Choreographer.doCallbacks(Choreographer.java:1300) at android.view.Choreographer.doFrame(Choreographer.java:1167) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1767) at android.os.Handler.handleCallback(Handler.java:959) at android.os.Handler.dispatchMessage(Handler.java:100) at android.os.Looper.loopOnce(Looper.java:249) at android.os.Looper.loop(Looper.java:337) at android.app.ActivityThread.main(ActivityThread.java:9410) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:614) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1005) Suppressed: kotlinx.coroutines.internal.DiagnosticCoroutineContextException: [h4.h2@3fb322e, h4.w0@8d291cf, s1{Cancelling}@f2f575c, u0@ee6a65] ### Additional Context _No response_ ### Build Version 2026.1.1 ### What server are you connecting to? US ### Self-host Server Version _No response_ ### Environment Details Redmi K60 Ultra Android 15 ### Issue Tracking Info - [x] I understand that work is tracked outside of Github. A PR will be linked to this issue should one be opened to address it, but Bitwarden doesn't use fields like "assigned", "milestone", or "project" to track progress.
GiteaMirror added the app:password-managerbug labels 2026-04-11 01:50:31 -05:00
Author
Owner

@bitwarden-bot commented on GitHub (Feb 6, 2026):

Thank you for your report! We've added this to our internal board for review.
ID: BWA-228

<!-- gh-comment-id:3858061431 --> @bitwarden-bot commented on GitHub (Feb 6, 2026): Thank you for your report! We've added this to our internal board for review. ID: [BWA-228](https://bitwarden.atlassian.net/browse/BWA-228) [BWA-228]: https://bitwarden.atlassian.net/browse/BWA-228?atlOrigin=eyJpIjoiNWRkNTljNzYxNjVmNDY3MDlhMDU5Y2ZhYzA5YTRkZjUiLCJwIjoiZ2l0aHViLWNvbS1KU1cifQ
Author
Owner

@rmcdowell-bitwarden commented on GitHub (Feb 6, 2026):

Hi there,

I am unable to reproduce this issue, it has been escalated for further investigation. If you have more information that can help us, please add it below.

I have also changed your submissions label to app:password-manager as the Bitwarden Authenticator app does not support storing login items.

Thanks!

<!-- gh-comment-id:3858291703 --> @rmcdowell-bitwarden commented on GitHub (Feb 6, 2026): Hi there, I am unable to reproduce this issue, it has been escalated for further investigation. If you have more information that can help us, please add it below. I have also changed your submissions label to app:password-manager as the Bitwarden Authenticator app does not support storing login items. Thanks!
Author
Owner

@A3148475824 commented on GitHub (Feb 6, 2026):

Hi there,

I am unable to reproduce this issue, it has been escalated for further investigation. If you have more information that can help us, please add it below.

I have also changed your submissions label to app:password-manager as the Bitwarden Authenticator app does not support storing login items.

Thanks!

Bitwarden adds an identity item, fill in the name casually, if you add two blank labels, you will find that it crashes! If there are two blank labels in all identity projects, it will definitely crash!

<!-- gh-comment-id:3858476953 --> @A3148475824 commented on GitHub (Feb 6, 2026): > Hi there, > > I am unable to reproduce this issue, it has been escalated for further investigation. If you have more information that can help us, please add it below. > > I have also changed your submissions label to app:password-manager as the Bitwarden Authenticator app does not support storing login items. > > Thanks! Bitwarden adds an identity item, fill in the name casually, if you add two blank labels, you will find that it crashes! If there are two blank labels in all identity projects, it will definitely crash!
Author
Owner

@A3148475824 commented on GitHub (Feb 6, 2026):

Hi there,

I am unable to reproduce this issue, it has been escalated for further investigation. If you have more information that can help us, please add it below.

I have also changed your submissions label to app:password-manager as the Bitwarden Authenticator app does not support storing login items.

Thanks!

I've already tested it and figured out why this bug is happening! I don't understand why you can't add two blank tags in the identity item! If there are two blank tags, deleting one doesn't cause it to crash! But if there are two blank tags, it crashes! This is really ridiculous!

Image

<!-- gh-comment-id:3858491400 --> @A3148475824 commented on GitHub (Feb 6, 2026): > Hi there, > > I am unable to reproduce this issue, it has been escalated for further investigation. If you have more information that can help us, please add it below. > > I have also changed your submissions label to app:password-manager as the Bitwarden Authenticator app does not support storing login items. > > Thanks! I've already tested it and figured out why this bug is happening! I don't understand why you can't add two blank tags in the identity item! If there are two blank tags, deleting one doesn't cause it to crash! But if there are two blank tags, it crashes! This is really ridiculous! ![Image](https://github.com/user-attachments/assets/1f0b0426-5d34-4baf-970b-43e14a3f6ce0)
Author
Owner

@pamperer562580892423 commented on GitHub (Feb 6, 2026):

if you add two blank labels

@A3148475824 In case you use a translator here - and to avoid confusion - I think you are talking about custom fields, which then would be "blank".

<!-- gh-comment-id:3860111234 --> @pamperer562580892423 commented on GitHub (Feb 6, 2026): > if you add two blank labels @A3148475824 In case you use a translator here - and to avoid confusion - I think you are talking about **custom fields**, which then would be "blank".
Author
Owner

@A3148475824 commented on GitHub (Feb 6, 2026):

if you add two blank labels

@A3148475824 In case you use a translator here - and to avoid confusion - I think you are talking about custom fields, which then would be "blank".

To avoid translation errors, I recorded a video and converted it to a GIF! It's right above!

<!-- gh-comment-id:3860147117 --> @A3148475824 commented on GitHub (Feb 6, 2026): > > if you add two blank labels > > [@A3148475824](https://github.com/A3148475824) In case you use a translator here - and to avoid confusion - I think you are talking about **custom fields**, which then would be "blank". To avoid translation errors, I recorded a video and converted it to a GIF! It's right above!
Author
Owner

@pamperer562580892423 commented on GitHub (Feb 6, 2026):

I recorded a video and converted it to a GIF! It's right above!

Yeah, I saw that. Certainly a good idea. But it's too quick to follow for me.

<!-- gh-comment-id:3860231962 --> @pamperer562580892423 commented on GitHub (Feb 6, 2026): > I recorded a video and converted it to a GIF! It's right above! Yeah, I saw that. Certainly a good idea. But it's too quick to follow for me.
Author
Owner

@A3148475824 commented on GitHub (Feb 6, 2026):

I recorded a video and converted it to a GIF! It's right above!

Yeah, I saw that. Certainly a good idea. But it's too quick to follow for me.

Create a new "Identify", fill in the name at will, click "Additional Options", continue to click "Add Field", and click "Text"! Don't fill in anything, click "OKEY"! Continue to create a blank "text"
Next, when you open this identity, you will find that you are crashing!
This is a very simple, at a glance, a bug that can be understood at a glance! I don't know, what am I talking about?

Quoting Chatgpt's answer:【This issue appears to be caused by Bitwarden strictly enforcing vault unlock context validation (foreground Activity / trusted UI), while third-party clients like Keyguard allow vault decryption in Autofill or overlay contexts by relying on Accessibility or relaxed lock-state checks.
As a result, the same vault data is accessible in Keyguard but intentionally restricted in Bitwarden.
This seems less like a cryptographic or permission bug and more like a UX/security tradeoff. A possible improvement could be introducing a short-lived, user-verified unlock session or allowing limited field decryption in Autofill contexts without fully unlocking the vault.】

<!-- gh-comment-id:3860311298 --> @A3148475824 commented on GitHub (Feb 6, 2026): > > I recorded a video and converted it to a GIF! It's right above! > > Yeah, I saw that. Certainly a good idea. But it's too quick to follow for me. Create a new "Identify", fill in the name at will, click "Additional Options", continue to click "Add Field", and click "Text"! Don't fill in anything, click "OKEY"! Continue to create a blank "text" Next, when you open this identity, you will find that you are crashing! This is a very simple, at a glance, a bug that can be understood at a glance! I don't know, what am I talking about? Quoting Chatgpt's answer:【This issue appears to be caused by Bitwarden strictly enforcing vault unlock context validation (foreground Activity / trusted UI), while third-party clients like Keyguard allow vault decryption in Autofill or overlay contexts by relying on Accessibility or relaxed lock-state checks. As a result, the same vault data is accessible in Keyguard but intentionally restricted in Bitwarden. This seems less like a cryptographic or permission bug and more like a UX/security tradeoff. A possible improvement could be introducing a short-lived, user-verified unlock session or allowing limited field decryption in Autofill contexts without fully unlocking the vault.】
Author
Owner

@pamperer562580892423 commented on GitHub (Feb 6, 2026):

@rmcdowell-bitwarden I just was curious enough to try to reproduce it. And I can reproduce it.

I just created a new BW account on the US cloud, as I didn't want to corrupt my own vault. (will delete the BW account now)

Steps to Reproduce:

  1. Add an Identity item (like @A3148475824 did it - I didn't test though if it would work with other item types, too).
  2. Give that identity item any name (as it is required to choose a name).
  3. Add a custom field --> choose "Text" --> click "Okay" without entering any text
  4. Repeat step 3 with a second custom field. (so also "Text" type, but empty)
  5. Click "save" to save this new identity item.
  6. Then try to open/access that identity item. (either by the search, or directly in the list of items...)
    Actual result:

The BW app indeed crashes... and I see:

Image

("Bitwarden was closed")

Expected result:

I should be able to open that item like any other vault item.

Additional info:

Fortunately, only this vault item seems to become inaccessible and crashing the app - I still could login to the vault and access it in general. (though, on that test account, I didn't add anything else than this now-corrupted identity item in that BW test account)

Environmental details:

© Bitwarden Inc. 2015-2026

Version: 2026.1.0 (21141)
📱 Fairphone FP5 🤖 15@35 📦 prod
🧱 commit: bitwarden/android/release/2026.1-rc42@67f83e3020b53f8d41e63a7d8f6bdb759ccb9ddc
💻 build source: bitwarden/android/actions/runs/21299199924/attempts/1
🦀 SDK: 2.0.0-4441-c5a3b833
🌩 Server: 2026.1.1 @ EU (--> that info is from my regular BW account now - as written above, I created that BW test account on the US cloud, as @A3148475824 also mentioned the US cloud)

PS: This issue "feels" also, like a similar one was reported before... I just did not search for it thoroughly... [EDIT: I think I had this issue #6266 in mind, but I think that is different, as it is about the URI... but maybe these two issue here have a similar root cause?!]

PPS: In the web vault, that identity item is still accessible... so it might have already used inaccurate language before, as it seems that vault item is not "corrupted", but the BW mobile app is for whatever reason not able to handle those two blank custom fields. - Here a screenshot from the web vault:

Image
<!-- gh-comment-id:3860515988 --> @pamperer562580892423 commented on GitHub (Feb 6, 2026): @rmcdowell-bitwarden I just was curious enough to try to reproduce it. And I **can** reproduce it. I just created a new BW account on the US cloud, as I didn't want to corrupt my own vault. (will delete the BW account now) **Steps to Reproduce:** 1. Add an Identity item (like @A3148475824 did it - I didn't test though if it would work with other item types, too). 2. Give that identity item any name (as it is required to choose a name). 3. Add a custom field --> choose "Text" --> click "Okay" without entering any text 4. Repeat step 3 with a second custom field. (so also "Text" type, but empty) 5. Click "save" to save this new identity item. 6. Then try to open/access that identity item. (either by the search, or directly in the list of items...) **Actual result:** The BW app indeed crashes... and I see: <img width="400" height="235" alt="Image" src="https://github.com/user-attachments/assets/21ca4542-e9a6-468b-b1b7-843706c07ea9" /> ("Bitwarden was closed") **Expected result:** I should be able to open that item like any other vault item. **Additional info:** Fortunately, only this vault item seems to become inaccessible and crashing the app - I still could login to the vault and access it in general. (though, on that test account, I didn't add anything else than this now-corrupted identity item in that BW test account) **Environmental details:** © Bitwarden Inc. 2015-2026 Version: 2026.1.0 (21141) 📱 Fairphone FP5 🤖 15@35 📦 prod 🧱 commit: bitwarden/android/release/2026.1-rc42@67f83e3020b53f8d41e63a7d8f6bdb759ccb9ddc 💻 build source: bitwarden/android/actions/runs/21299199924/attempts/1 🦀 SDK: 2.0.0-4441-c5a3b833 🌩 Server: 2026.1.1 @ EU (--> that info is from my regular BW account now - as written above, I created that BW test account on the US cloud, as @A3148475824 also mentioned the US cloud) PS: This issue "feels" also, like a similar one was reported before... I just did not search for it thoroughly... [EDIT: I think I had this issue #6266 in mind, but I think that is different, as it is about the URI... but maybe these two issue here have a similar root cause?!] PPS: In the web vault, that identity item is still accessible... so it might have already used inaccurate language before, as it seems that vault item is not "corrupted", but the BW mobile app is for whatever reason not able to handle those two blank custom fields. - Here a screenshot from the web vault: <img width="1494" height="811" alt="Image" src="https://github.com/user-attachments/assets/e0bf24f6-38e2-442f-ae29-28ad00084ec0" />
Author
Owner

@awvalenti commented on GitHub (Feb 11, 2026):

I agree that this and #6515 are duplicates. The cause seems to be the presence of two fields with same label, being them blank or not.

<!-- gh-comment-id:3884181322 --> @awvalenti commented on GitHub (Feb 11, 2026): I agree that this and #6515 are duplicates. The cause seems to be the presence of two fields with same label, being them blank or not.
Author
Owner

@david-livefront commented on GitHub (Mar 31, 2026):

Changes have been made to the identity UI here that should address this issue.

It should make it's way to production in a few weeks.

<!-- gh-comment-id:4163242234 --> @david-livefront commented on GitHub (Mar 31, 2026): Changes have been made to the identity UI [here](https://github.com/bitwarden/android/pull/6743) that should address this issue. It should make it's way to production in a few weeks.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/android#8490