Bitbucket Server fails to load pages due to "Could not get unique fields for table" errors
Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.
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
Problem
Bitbucket Server pages are not loading successfully and the server returns the 500 http status.
The following appears in the atlassian-bitbucket.log:
Caused by: java.lang.RuntimeException: Could not get unique fields for table 'AO_92D5D5_USER_NOTIFICATION'
Note: the table may differ in your logs depending on the add ons installed in your instance. However, the table name will always be starting with "AO".
Environment
PostgreSQL 9.6+.
Cause
The support for PostgreSQL 9.6+ has been introduced as part of version 4.11.0 (see BSERV-9225 - Getting issue details... STATUS ).
Resolution
Option #1 - Upgrade to the latest Bitbucket Server version (recommended)
The recommended solution for this problem is to upgrade to the latest Bitbucket Server version.
PostgreSQL 9.6 is supported since Bitbucket Server version 4.11.0.
Options #2 - install the postgresql-9.4.1211 jar
In case an upgrade is not possible, follow the instructions below to use a more recent postgresql jar.
- Stop Bitbucket Server
Locate the jdbc driver for PostgreSQL
The file will be located in the
<Bitbucket installation dir>/lib
folderWith a name similar to
postgresql-*.*-*-jdbc*.jar
(where * will be a number indicating the version of the add on)
Replace the located jar with the postgresql-9.4.1211.jar one
Start Bitbucket Server