Video Screencast Help
Endpoint Management Community Blog

Why do I get a 'Invalid Character in a Base-64 String' error when trying to select a database for Notification Server?

Created: 19 Feb 2008 • Updated: 19 Feb 2008
BRING's picture
0 0 Votes
Login to vote

The error message 'Invalid Character in a Base-64 String' recently appeared in the Notification Server error log. This error occurred immediately after attempting to select a database for the Notification Server to connect to, using the Database Setting option as shown below in Figure 1.

Keep reading for our (ever so humble) solution.

No matter how many times the dropdown was clicked to attempt to select a database, a blank dropdown would show, and the 'Invalid Character in a Base-64 String' error showed up in the Notification Server logs, and on this page as well.

Figure 1 - Blank Database Option

Click to view.

Initially, troubleshooting this issue centered on the wrong database access account, and database permissions. Once it was established that all of those items were set correctly, we focused on what ended up being the real problem, the database password.

Under normal operating circumstances, the password appears in the Coresettings.config file, as an encrypted hash. A normal entry for this would look like:

customSetting key="DbPassword" type="local" value="zT7+YwwpG8c="

In the problem one, we had an entry that looked similar to:

customSetting key="DbPassword" type="local" value="RrZs#wd$"

Note that the second entry does NOT have an '=' sign at the end. The presence of this equals sign signifies that the hashing mechanism has been successfully applied during the password encryption part -- to avoid displaying a clear text password in this file. In our case, somehow that procedure had been unsuccessfully attempted.

To resolve the issue, we simply edited the Coresettings.config file and replaced the value of the DbPassword key. The line appeared like this:

customSetting key="DbPassword" type="local" value=""

This forced the Notification server to temporarily use the password of the application identity (in our case, this was the correct database credential set anyway), and when we opened the UI, we were able to view the database dropdowns correctly.