Recreate default secured secrets in Confluence

Platform Notice: Data Center Only - This article only applies to Atlassian apps on the Data Center platform.

Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data-Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Summary

When running a Confluence instance with secure secrets, you might not be able to start up the instance if there's any problem reading or validating the encrypted secrets.

Diagnosis

Confirm if secured property missing

Presence of logs indicating issues to validate one or more secrets in the application or Catalina logs.

2025-07-23 13:38:54,097 ERROR [Catalina-utility-1] [atlassian.confluence.setup.ConfluenceConfigurationListener] contextInitialized An error was encountered while bootstrapping Confluence (see below): \nSecured property not found in SecretService confluence.property.synchrony.service.authtoken java.lang.IllegalStateException: Secured property not found in SecretService confluence.property.synchrony.service.authtoken at com.atlassian.confluence.impl.setup.ConfluenceApplicationConfig.lambda$load$0(ConfluenceApplicationConfig.java:95) at java.base/java.lang.Iterable.forEach(Unknown Source)

Cause

There are many different possible causes for which we might need to recreate these secrets, such as:

  • The absence of any of the three following files that should be present in the shared-home:

    • secrets-config.yaml

    • keys (folder)

    • secured (folder)

  • If the cluster nodes became out of sync and these files were overwritten (for example, while re-mapping the shared home).

    It’s important to note that you must take the files above with the instance whenever you migrate to a different server or shared home folder.

Solution

Recreating the secrets

  1. Locate all encrypted secrets in use and convert them to plain text: The list of encrypted secrets will depend on exactly how your Confluence has been deployed. Here’s a table of possible encrypted secrets and how to revert to plain text:

Secret

How to revert to plaintext

confluence.property.confluence.cluster.authentication.secret

Located in <shared-home>/confluence.cfg.xml and in <local-home>/confluence.cfg.xml.

Replace with a 40-character-long string containing random characters between '0'-'9' and 'a'-'f'.

confluence.property.synchrony.service.authtoken

Located in <shared-home>/confluence.cfg.xml and in <local-home>/confluence.cfg.xml.

Replace with a 32-character-long string containing random characters between '0'-'9' and 'a'-'f'

confluence.property.hibernate.connection.password

Located in <shared-home>/confluence.cfg.xml and in <local-home>/confluence.cfg.xml.

Replace with Confluence’s database user password

confluence.property.opensearch.password

Located in <shared-home>/confluence.cfg.xml and in <local-home>/confluence.cfg.xml.

Replace with OpenSearch plaintext password (absent if Open Search is not configured)

confluence.property.confluence.cluster.aws.access.key confluence.property.confluence.cluster.aws.secret.key

Located in <shared-home>/confluence.cfg.xml and in <local-home>/confluence.cfg.xml.

Replace with the respective passwords from your AWS environment (absent if the deployment is not in AWS)

atlassian.confluence.smtp.mail.accounts

Located in the Database.

Find the correct row in the bandana table.

select ID, BANDANAVALUE from BANDANAwhere BANDANAKEY = 'atlassian.confluence.smtp.mail.accounts';

Replace the {ATL_SECURED} in the password field with the desired plaintext value.

-- Postgres, MySQL, Oracle:update BANDANA set BANDANAVALUE = replace(BANDANAVALUE, '<password>{ATL_SECURED}</password>', '<password>actual_password</password>') where ID = '<idFromPreviousSelect>';-- MSSQL:update BANDANA set BANDANAVALUE = replace(cast(BANDANAVALUE as nvarchar(max)), '<password>{ATL_SECURED}</password>', '<password>actual_password</password>') where ID = '<idFromPreviousSelect>';

You can alternatively DELETE the whole smtp.mail.account entry if the email is no longer in use, or we cannot recover its password. You can redo this configuration from the UI.

  1. Backup and delete the three related files in the shared-home:

    • secrets-config.yaml

    • keys (folder)

    • secured (folder)

  2. You can either:

    • Add -Datlassian.secret.service.state=disabled to the system properties to disable the encryption completely, or

    • Restart Confluence for it to automatically re-encrypt all the plain text and re-create everything.

      • The mail server password must be forcibly re-encrypted. To do so:

        • Head to <confluence-base-url>/admin/force-upgrade.action

        • Select secureMailServerSecretUpgradeTask and click Force upgrade

Additional resources:

Updated on October 17, 2025

Still need help?

The Atlassian Community is here for you.