Importing from a Bitwarden vault fails "No codec found"
Comments
-
I'm getting the same error: "Unsupported Bitwarden export. Make sure that your export file is JSON encrypted with a password." It's not an issue with the codec.
This is a blocking issue for me. Not off to a good start with my new 1Password family plan!
0 -
Yeah, same. I'm running out of my trial period at this point, I hope it could be extended since I could only touch surfaces of 1Password. I know I could use the CSV export but, as also confirmed by support, with CSV i could be missing important metadata such as passwords history and creation dates, and more important multiple sites for each entry. I'd really want to try a direct Bitwarden import.
0 -
Same for me. The error "Unsupported Bitwarden export. Make sure that your export file is JSON encrypted with a password." is a blocking me to migrate to the new 1Password family plan!
0 -
This content has been removed.
-
Hey folks, I've reached out to the team to see if I can get any additional information for you.
2 -
I'm a new 1Password user that is running into this issue as well. Looking at the browser console, I count 13 import errors across two different items.
Item #1 is an identity item type. The following fields are erroring due to a null value: title, address2, address3, company, ssn, username, passportNumber, and licenseNumber. There are also two fields in this same item that show "Invalid value (type: object)", but I can't glean much more information than that.
I know less about what I'm looking at with Item #2, but hopefully your engineers can make sense of the last 3 errors.
I'm going to attempt to remove the troublesome items from my encrypted JSON file and hope that I can import successfully. I'll keep a copy of it prior to modification and will be happy to provide the two lines causing issues to your engineers (filled with dummy data).
0 -
Hey folks, The team has said they are working with this. They are hopeful that soon you'll be able to move forward. I apologize I do not have a firm time frame to offer. They have not forgotten about you.
0 -
As an update to my above issue, I got my Bitwarden vault imported! Item #1 was my primary identity in Bitwarden; the import script didn't like some of the null values. Item #2 was an incomplete credential with no username or password, but a note added in the Notes section.
0 -
Nice job! I'm glad to hear it.
0 -
@ag_tommy - I did find a bug in the Bitwarden import script that I wanted to send your way while you were in contact with the dev team. It doesn't appear that the import script handles custom fields in Secure Notes; they're missing from all of mine. It successfully handles them in Credentials, so I figured this wasn't intentional.
Thanks for your help! It's very much appreciated. :) I'm loving 1Password so far, and I'm looking forward to getting my family bootstrapped onto it so that they no longer need to keep passwords in their head. 1Password seems to be a better fit for families.
0 -
Suffering the same issue. I've exported my Bitwarden vault in JSON format with a password from the bitwarden.com web console. When trying to import into 1password.com from the web console I get:
Unable to import. Unsupported Bitwarden export. Make sure that your export file is JSON encrypted with a password. Error Code: Session: [OBFUSCATED BY ME] Time: 2024-06-26T17:55:09.425Z
0 -
Thanks @clamor9687
I've not seen any movement here with regard to a user facing solution. Please allow me to check with that team.
0 -
I'm a software dev myself and am looking at moving our entire company over to 1password (70+ accounts). We'd need a solution that can port cleanly. If it helps, I can do dbug in console from my side, just need direction on what you're looking for. Your help is appreciated.
0 -
I was also advised to do the transfer via CSV with a HUGE caveat - that I have to manually go through my thousands of passwords in something like Excel and make sure that all the datatypes are correct and formatting is correct.
To me this is not a solution, it's almost the same as advising on retyping every password into 1password.
Are there any updates on the bug?0 -
**Disclaimer: Not a 1Password employee, just some guy with a technical background. I wrote this in a hurry and stuff isn't thoroughly tested. This is just what worked for me. **
Using the information in @clamor9687 's post, I figured out how to make the current import system work. This isn't a full working guide and it's geared towards technical people as opposed to the layman.
- Create an
encrypted account restricted
export. Since Bitwarden doesn't allow users to selectively export contents, we have to manually go in and delete stuff. This step gives us a point to restore from in case something goes wrong. - Create a json unencrypted export
- Create a json encrypted export
- Right-click your browser, click inspect, and then go to the console tab
- Attempt to upload the encrypted json into 1Password. You'll probably get an error code here.
- Decipher the error messages, and delete/fix offending items in Bitwarden. (See details below)
- Rinse and repeat steps 1-5. You might need to make several passes before you find all problems in Bitwarden.
Deciphering the error codes
The big idea here is that 1Password doesn't handle
null
values well. We basically need to find them all and delete/fix them. Unfortunately, the error codes in the browser console don't tell you which item is offending, only why it's offending. I recommend using the unencrypted json we created in step 1 for easy searching. I'm going to walk through some examples.An example error code
action/import/bitwarden#parseBitwardenExport failed to decode: Invalid value null supplied to : pipe(json, FileFormat)/items: ReadonlyArray<Item>/146: Item/card: withDefault((CardItemType | undefined | null), undefined)/0: CardItemType/cardholderName: string
This means that in one of your saved credit cards in Bitwarden has a null cardholder name. CTRL-F in the unencrypted json to look for
cardholderName": null
; the unencrypted json just makes searching easier, you could also manually look for this card on the Bitwarden Website.action/import/bitwarden#parseBitwardenExport failed to decode: Invalid value null supplied to : pipe(json, FileFormat)/items: ReadonlyArray<Item>/587: Item/login: withDefault((LoginItemType | undefined | null), undefined)/0: LoginItemType/uris: ReadonlyArray<{ uri: string }>/0: { uri: string }/uri: string action/import/bitwarden#parseBitwardenExport failed to decode: Invalid value (type: object) supplied to : pipe(json, FileFormat)/items: ReadonlyArray<Item>/587: Item/login: withDefault((LoginItemType | undefined | null), undefined)/1: undefined action/import/bitwarden#parseBitwardenExport failed to decode: Invalid value (type: object) supplied to : pipe(json, FileFormat)/items: ReadonlyArray<Item>/587: Item/login: withDefault((LoginItemType | undefined | null), undefined)/2: null
This group of errors are related. The first line here means that in a Login item,
uri
wasnull
. Either fill the URI with a sensible value or delete it. The 2nd and 3rd lines, I'm pretty sure, are related to thisuri
issue. I think when the code was unable to construct aLoginItemType
object becauseuri
wasnull
, the Login object becomes typeobject
instead ofLoginItemType
,undefined
, ornull
.0 - Create an
-
Disclaimer: I don't work for 1Password. Just some guy with a technical background. Instructions below have not been rigorously tested. This guide is geared towards technical people who are comfortable with browser consoles and json files
Using information from @clamor9687 's post, I figured out how to import my Bitwarden password encrypted json vault into 1Password.
Steps
- Create an "account restricted" encrypted json export in Bitwarden. The following steps require deleting/modifying Bitwarden entries (we have to do this since Bitwarden doesn't let us export a selection of items). This backup gives us a restore point in case we seriously mess up.
- Create unencrypted json export in Bitwarden. This is just for easy searching in subsequent steps.
- Create password encrypted json export in Bitwarden.
- Go to 1Password.com and right-click -> inspect -> console.
- Attempt to import the password encrypted json from step 2. We expect to see an "Unable to import." error popup and a bunch of errors will print in the console.
- Locate the offending items and delete or fix them in Bitwarden (Details below)
- Rinse and repeat steps 1-5. You might need to make several passes to find all the offending items
How to read errors in the console
The big idea here is that the 1Password import process doesn't handle
null
values particularly well. The console error swill tell you which fields arenull
or offending, but won't tell you which item this belongs to. I recommend using the unencrypted json from step 1 to help you find them.action/import/bitwarden#parseBitwardenExport failed to decode: Invalid value null supplied to : pipe(json, FileFormat)/items: ReadonlyArray<Item>/146: Item/card: withDefault((CardItemType | undefined | null), undefined)/0: CardItemType/cardholderName: string
This indicates that a
cardholderName
field wasnull
instead of the expectedstring
. CTRL-F in the unencrypted json forcardholderName": null
and either delete those cards from Bitwarden, or fill in the entry.action/import/bitwarden#parseBitwardenExport failed to decode: Invalid value null supplied to : pipe(json, FileFormat)/items: ReadonlyArray<Item>/587: Item/login: withDefault((LoginItemType | undefined | null), undefined)/0: LoginItemType/uris: ReadonlyArray<{ uri: string }>/1: { uri: string }/uri: string action/import/bitwarden#parseBitwardenExport failed to decode: Invalid value (type: object) supplied to : pipe(json, FileFormat)/items: ReadonlyArray<Item>/587: Item/login: withDefault((LoginItemType | undefined | null), undefined)/1: undefined action/import/bitwarden#parseBitwardenExport failed to decode: Invalid value (type: object) supplied to : pipe(json, FileFormat)/items: ReadonlyArray<Item>/587: Item/login: withDefault((LoginItemType | undefined | null), undefined)/2: null
These 3 lines are related. The first one indicates that one of the login
uri
fields isnull
. Just like before, either delete theuri
or fill it in. The next 2 errors appear to be caused by the first one. I think if theuri
is null, the javascript cannot construct aLoginItemType
and instead creates an object of typeobject
. Since that isn't aLoginItemType
,undefined
, ornull
type, the code errors out. If theuri
issue is fixed, then last 2 errors will go away.0 -
@ag_tommy any update on when the new release will be out?
0 -
Hey there, corporate user here. I'm adding my name to the list of those affected by this. It impacts several of my (generally more tech-savvy) users and me. Thanks to those who have posted workarounds, and I'm looking forward to the official fix!
0 -
Hey folks, Let me see if I can get an update from the team. My apologies you have not seen movement yet. I had hoped it would have been present by now.
1 -
Same problem here. I have 2000+ items and very frustrated 1password import featrure is not working. Hope fix soon.
0 -
@ag_tommy any updates?
This is a blocker for me. I've 500+ items and can't manually edit them for import.0 -
Sorry, I've been away for the holidays. Let me ask.
1 -
Hey folks, The team says the code is in review. Assuming all goes well, you should see a resolution soon. My best guess would be in the next day or so. My apologies for the delay.
1 -
I was finally able to import my encrypted JSON file.
0 -
Nice! Thank you so much for sharing that with the community.
0 -
That's not the case for me :\ Is the fix already available?
0 -
Perhaps you've encountered something new/different? Please email us using
support+forum@1password.com
. Be sure to use the email address tied to the account in question. Feel free to include any screenshots or error messages you may have seen. This will help get you before the technical team and they can ensure what you're experience is indeed the same.0 -
Done. Let's hope for a final solution :)
0