KeePassRPC 1.8.0 is incompatible: "ResX file Root element is missing."

KeePass 2.38 rejects KeePassRPC 1.8.0.

Short answer: No, it’s not incompatible with 2.38. That’s the version that I tested the plgx against on multiple systems and it worked fine. At least a few other people have already installed and successfully tested on their systems too.

I currently have no idea what that error message could mean. Possibly a broken .NET or Windows installation but I’m clutching at straws without more to go on.

Please provide more details about your system and any other plugins you have installed.

Is anyone else having the same problem? If so, we can maybe narrow down what causes it.

Thanks for the quick reply.

Windows 10 1803
KeePass 2.38
Plugins: KeePassHttp 1.8.4.2, KeePassRPC, KeePassBrowserImporter 1.0.40

Have reverted to KeePassRPC 1.7.3.0 : which works fine.

Thanks for the info.

A Google search has revealed no other indications as to what might cause this error so hopefully some other people will be able to help us narrow down the cause.

In the mean time, please can you confirm that you meant to type 1803 as your Windows version? It looks like that version has yet to be released so:
a) I wanted to check it wasn’t a typo for the far more common 1703 version
b) It could explain why you’re the only person seeing the problem if a change in a pre-release version of Windows has introduced a new .NET Framework/Windows Forms bug

Confirming that it is Windows 10 Pro 1803 OS build 17134.1
This is officially released and available on the Windows update channel
- and known as the ‘Windows 10 April 2018 Update’

I am not a developer (perhaps, can be considered a power user) but as far as I have checked, this new Windows version has not thrown up any issues with other software that I use.

Since KeePassRPC 1.7.3.0 works fine with this version of Windows - does KeePassRPC 1.8.0 have dependency on a specific version of .NET, that 1.7.3.0 does not have? If so, I can try installing a specific version of .NET to check.

Thank you for your attention to this issue.

That’s the latest version of KeePass and KeePassRPC so it should be working fine (as it does for me on all my machines).

Looking for search results around “ResX file root element missing” seems to bring up issues with .NET or compiling Visual Studio solutions. If you’ve already taken LuckyRat’s advice to update .NET, then I would make a guess that your version of the plugin is unofficial. Unless you specifically chose to rename it to KeePassRPC1.8.0.plgx, the file that’s hosted on GitHub and linked to in the Upgrading KeePassRPC docs should actually be called KeePassRPC.plgx. To be absolutely sure, please check the hashes of your PLGX file and see if they match the following…

MD5: 9D0FAA707EDE47E66681A62B49373468
SHA-1: 66520BC12D54E6090913C0EA64FFAC1DAADB71FC

The file size should be 274,061 bytes. If yours doesn’t match, try downloading the official one again.

If that’s all okay, then it might be a .NET configuration issue and you might need to uninstall all versions of .NET Framework and any associated configuration files stored in your user profile (appdata\roaming etc.) before reinstalling it.

Good luck! :slightly_smiling_face:

Win10 1803 17134.1
KeePass 2.38 does nothing but crash now after the KeePassRPC.plgx plugin was updated by choco upgrade all. I checked the filesizes and hashes and they are nothing like posted here. I am going to download from GitHub and check if your version is digitally signed by a certificate. This is unsigned.

MD5: 9D0FAA707EDE47E66681A62B49373468
SHA-1: 66520BC12D54E6090913C0EA64FFAC1DAADB71FC

PS C:\Program Files (x86)\KeePass Password Safe 2\Plugins\BadPluginsBAD> sigcheck.exe -h -vs -a .\KeePassRPC.plgx

Sigcheck v2.60 - File version and signature viewer
Copyright © 2004-2017 Mark Russinovich
Sysinternals - www.sysinternals.com

C:\Program Files (x86)\KeePass Password Safe 2\Plugins\BadPluginsBAD\KeePassRPC.plgx:
Verified: Unsigned
File date: 2:41 PM 2018-03-26
Publisher: n/a
Company: n/a
Description: n/a
Product: n/a
Prod version: n/a
File version: n/a
MachineType: n/a
Binary Version: n/a
Original Name: n/a
Internal Name: n/a
Copyright: n/a
Comments: n/a
Entropy: 7.995
MD5: 577D6A535280CBACB4E4C25EA6DC7409
SHA1: 144DB628CB9E1A3D6A09A7D93EA6B75A2F80593B
PESHA1: 144DB628CB9E1A3D6A09A7D93EA6B75A2F80593B
PE256: 3355834E4CE9D09D58E3F19F60505B0B06332FCE1F63B5EE908A1DF170192BF9
SHA256: 3355834E4CE9D09D58E3F19F60505B0B06332FCE1F63B5EE908A1DF170192BF9
IMP: n/a
VT detection: 0/59
VT link: https://www.virustotal.com/file/3355834e4ce9d09d58e3f19f60505b0b06332fce1f63b5ee908a1df170192bf9/analysis/
PS C:\Program Files (x86)\KeePass Password Safe 2\Plugins\BadPluginsBAD>

plgx files are not executable so are never digitally signed.

I don’t know anything about choco apart from that it’s a package manager for Windows. I’ve never done anything to enable KeePassRPC to be installable through it so can’t comment as to whether something has gone wrong in their package repository. If they are delivering files that differ from the ones I posted on GitHub, that does sound like something may be broken on the choco side of things though.

An update.

  1. Tried with the newly released KeePass 2.39 and KeePassRPC 1.8.0 doesn’t work and neither does 1.7.3.
    Use this daily and have reverted to KeePass 2.38.
  2. Was informed that Windows 10 1803 has an updated .NET bundled in and so there is no need to instal .NET separately.
    Is there a dependency for KeePassRPC 1.8.0 on a .NET version prior to 4.7.2?
    Thanks. Looking for an update of KeePassRPC, when possible, so I can install KeePass 2.39.

Error message with 1.7.3 (from KeePass 2.39)
1

Error message with 1.8.0 (from KeePass 2.39)

I have the same issue for me. I had to revert to keepass 2.38

@Eric_Duveau Have you also upgraded to Windows 10 1803?

If so, it’s possible the new version of .NET has a bug in it. Has anyone reported the bug to Microsoft yet? They might be able to issue a fix in the next round of patches next month.

I won’t be on a Windows machine for a while now and don’t have access to this 1803 build yet (despite it being “released” it’s not currently available for me and with a potentially serious bug like this, I would have to get hold of a new computer rather than risk breaking the entire development environment of my main PC - not something I can afford at the moment).

I have what seems to be the same problem (though much less verbose) on Arch Linux after updating keepass to 2.39 from repository
39

Considering that @Glomzubuk has reported this issue with Linux - should we consider that this may not be a .NET issue:

Using the same Windows version:
Scenario 1:
With KeePass 2.38:
KeePassRPC 1.7.3 works
KeepassRPC 1.8.0 does not work
Scenario 2:
With KeePass 2.39
KeePassRPC 1.7.3 does not work
KeepassRPC 1.8.0 does not work

It seems likely that there is an issue in the way in which:
KeePassRPC 1.8.0 connects with KeePass 2.38 AND 2.39
(from the error messages, the issue seems to be the same for both KeePassRPS 1.8.0 <-> KeePass 2.38 and KeePassRPS 1.8.0 <-> KeePass2.39)

It seems likely that there is an issue in the way in which:
KeePassRPC 1.7.3 connects with KeePass 2.39
(from the error messages, this issue is different from the one between KeePassRPC 1.8 <-> KeePass2.39)

Hi Lucyrat My PC is on windows 7.

I get the same error message that Padua got on his May 7, 12:54 PM post, EXCEPT I get it with KeePass 2.39 with KeePassRPC 1.8.0.0 (not 1.73 as he did). For me, KeePassRPC 1.8.0.0 would not work with either KeePass 2.38 or 2.39.

However, KeePassRPC 1.4.4.0 works fine with KeePass 2.38, but NOT with 2.39. I have not tested any versions of KeePassRPC between 1.4.4.0 and 1.8.0.0. So before I read this thread, my conclusion had been that the problem was both with KeePass (2.39), and KeePassRPC (1.8.0.0).

I am running Windows 7 PRO (64 bit) SP1, and Microsoft .NET Framework 4.7.1.

Not sure if this helps or confuses the situation, but I thought more ‘data points’ might help lead to a solution.

Harry

Everyone, just to be clear, this topic is only about the error message “ResX file Root element is missing.” I will rename the topic to make this clearer.

In particular, note that generic error messages about KeePassRPC being incompatible are out of scope for this topic. I have already seen a few people pointing out that KeePassRPC versions before 1.8.0 are incompatible with the new release of KeePass 2.39. This is expected. It is in fact the primary reason that 1.8.0 was released. Please upgrade to 1.8.0 and unless you are in the unlucky one or two people with the ResX error message, this will solve any incompatibility errors for you.

If you are running KeePass 2.39 and KeePassRPC 1.8.0 and still see an incompatibility error, please launch KeePass from the command line with the --debug parameter in order to see a more detailed error message. If this message indicates a problem with ResX, please post a screenshot here along with details about your system, if not, please search for other topics about your error message or post a new topic if applicable.

@luckyrat Thanks for renaming this thread to keep the focus. Even with the issues with KeePassRPC 1.8.0 I would like to mention that I have been using KeePassRPC for a long time and find it very very useful. Thank you for writing this plugin.

  1. Since others with older Windows versions are also facing this issue it seems that is not caused by the new version of .NET.
  2. Tried running KeePass 2.39 with the -debug, as suggested by you.
    Highlighting some parts of the error log:

c:\Users****\AppData\Local\Temp\928A9972D4C3F246B8FE1A96157DCE7E\KeePassRPCClient.cs(11,14): error CS0234: The type or namespace name ‘Linq’ does not exist in the namespace ‘System’ (are you missing an assembly reference?)

c:\Users****\AppData\Local\Temp\928A9972D4C3F246B8FE1A96157DCE7E\DataExchangeModel.cs(247,18): warning CS0659: ‘KeePassRPC.DataExchangeModel.EntryConfig’ overrides Object.Equals(object o) but does not override Object.GetHashCode()

Could not attach a .txt file - Also unable to include the full error log text (because the error og provides several links to compiler related resources on MS’ website). Is there a way to DM this to you or email?

Possible resolution method for the root element missing issue:

https://social.msdn.microsoft.com/Forums/vstudio/en-US/2f72793e-62e1-46ce-bfae-8f97eaecd097/invalid-resx-file-root-element-is-missing-error-stmt

@Lex please can you supply the complete error message that you see with KeePassRPC 1.8 on KeePass 2.38 or 2.39 (screenshot if that’s easiest)?

@Padua :

Since others with older Windows versions are also facing this issue it seems that is not caused by the new version of .NET.

It looks like Lex is the only potential other person with the same issue - the others are definitely describing more generic incompatibility errors. Let’s await further info before we reach this conclusion.

That said, I have looked through the changelog and can’t see any known reason to explain this issue.

error CS0234: The type or namespace name ‘Linq’ does not exist in the namespace ‘System’ (are you missing an assembly reference?)

This is very suspicious. Linq has been a core component of .NET for many years and this is not a new requirement in v1.8. For your system to suddenly complain that it is missing may be indicative of a corrupt Windows / .NET installation (as said earlier, .NET is typically bundled with Windows now so faults with .NET are typically resolvable via the same routes as other faults with Windows - Reset to factory defaults, reinstallation, etc.). But let’s not jump straight to that conclusion before we can see if anyone else is suffering with the same issue.

It would also be worth verifying that you’re not somehow running KeePass in a legacy mode which prevents the use of .NET 4+. I can’t recall exactly how to do this at the moment but it’s worth looking into - perhaps you had some sort of customised .NET configuration for KeePass which got overwritten when Windows installed the latest update.

warning CS0659: ‘KeePassRPC.DataExchangeModel.EntryConfig’ overrides Object.Equals(object o) but does not override Object.GetHashCode()

That can safely be ignored.

Is there a way to DM this to you or email?

You should be able to send me a PM (click on my name/avatar and then the Message button).

Possible resolution method for the root element missing issue

Unfortunately, as with all historical mentions of this error I found on Google, it appears to apply to ancient versions of .Net when using the Visual Studio designer tool, rather than the current context of compiling a plgx file.

luckyrat:

@Lex please can you supply the complete error message that you see with KeePassRPC 1.8 on KeePass 2.38 or 2.39 (screenshot if that’s easiest)?

I started a different thread, which you suggested. You can find it, along with the screenshot (which I could not figure out how to attach, so included an link) here:
https://forum.kee.pm/t/problems-with-keepassrpc-1-8-0-0-and-keepass-not-resx-file-root-element-is-missing/1177?u=lex

Lex

1 Like