Creating first plan leads to error "Unable to read cipher data for 0"
Asked by Karl Wallner:

I did a new installation of bamboo server. My Configuration:

\* Windows 10

\* PostgreSQL 9.6

What I have done:

\* Started bamboo as service (Local user)

\* Clicked through the installation (external database etc.)

\* "Create first test plan"

\* Added repository (github private repo)

The create plan action (http://localhost:8085/build/admin/create/createPlan.action) leaded me to an error page:

An unexpected error has occurred {#toc-hId-1791456612}
------------------------------------------------------

Unable to read cipher data for 0

What I have done:

1. Reinstall:

A complete reinstall resulted in the same error.

I also tried to add the repository again, also the same error.

2. Investigation:

The cipher directory (bamboo-home\\xml-data\\configuration\\cipher) seems not be accessibly for the local user.

So I changed permission to agrant the local user access.

The error now is "java.nio.file.AccessDeniedException: V:\\bamboo-home\\xml-data\\configuration\\cipher"

By the way: The cipher file "cipher.key_0" is empty.


Answers:
author: Jeyanthan I
body: Hi Karl,

As you see in this [KB article](https://confluence.atlassian.com/bamkb/unknown-cipher-data-id-0-when-performing-certain-actions-in-bamboo-on-windows-after-switching-bamboo-to-run-as-a-service-923437107.html), the latest version of Bamboo (from 5.15.x) is shipped with [System-wide encryption feature](https://confluence.atlassian.com/bamboo/system-wide-encryption-873930114.html). The encryption key is stored in the database and on the filesystem. Both the filesystem and the database key parts are required to perform successful decryption. The key part stored on your filesystem is located under \<BAMBOO-HOME\>/xml-data/configuration/cipher.

When Bamboo first generates the filesystem key part, it limits ownership and access to this file to only the user running Bamboo. We see this cause issues on Windows as the user running the process often gets changed when configuring Bamboo to run as a service as opposed to a console application. When the process is started as a different user to the user running Bamboo when the filesystem key part was first generated, Bamboo can no longer access the filesystem key part.

Looking at this error snip,
> "java.nio.file.AccessDeniedException: V:\\bamboo-home\\xml-data\\configuration\\cipher"

It looks like you have permission issue to access this directory like we suspected. We recommend you set up a local user, with local admin rights, to run the windows service and rerun the service.

Please do the following:

1. Stop Bamboo service
2. Change the log on user as per [Running Bamboo as a Windows service as the local user - Atlassian Documentation](https://confluence.atlassian.com/bamboo/running-bamboo-as-a-windows-service-as-the-local-user-416580754.html)
3. Remove the cipher folder**V:\\bamboo-home\\xml-data\\configuration\\cipher**(after taking a backup just in case we need to restore it again)
4. Make sure this user is able to access all Bamboo files from both **\<Bamboo_Install\>** and **\<Bamboo_Home\>** path.
5. Start the service.

Hope that helps.