ERROR: column this.external_id does not exist
Symptoms
You are accessing Confluence via a proxy and the following appears in the atlassian-confluence.log
:
org.springframework.jdbc.BadSqlGrammarException: Hibernate operation: Unable to perform find; bad SQL grammar []; nested exception is org.postgresql.util.PSQLException: ERROR: column this.external_id does not exist
Position: 484
org.springframework.jdbc.support.SQLStateSQLExceptionTranslator.doTranslate(SQLStateSQLExceptionTranslator.java:97)
org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72)
org.springframework.orm.hibernate.HibernateAccessor.convertJdbcAccessException(HibernateAccessor.java:364)
org.springframework.orm.hibernate.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:351)
org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:375)
org.springframework.orm.hibernate.HibernateTemplate.execute(HibernateTemplate.java:337)
com.atlassian.crowd.embedded.hibernate2.HibernateUserDao.internalFindUser(HibernateUserDao.java:472)
com.atlassian.crowd.embedded.hibernate2.HibernateUserDao.internalFindByName(HibernateUserDao.java:449)
com.atlassian.crowd.embedded.hibernate2.HibernateUserDao.findByName(HibernateUserDao.java:429)
com.atlassian.confluence.user.crowd.CachedCrowdUserDao$1.apply(CachedCrowdUserDao.java:76)
com.atlassian.confluence.user.crowd.CachedCrowdUserDao$1.apply(CachedCrowdUserDao.java:71)
com.atlassian.confluence.cache.option.OptionalReadThroughCache.get(OptionalReadThroughCache.java:33)
com.atlassian.confluence.user.crowd.CachedCrowdUserDao.findUser(CachedCrowdUserDao.java:136)
com.atlassian.confluence.user.crowd.CachedCrowdUserDao.findByName(CachedCrowdUserDao.java:158)
sun.reflect.GeneratedMethodAccessor99.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
Cause
This error is actually caused by an expired license being applied to Confluence. Usually you would see the error message in your browser displayed in: Upgrade fails due to expired license, but due to accessing Confluence indirectly, you receive this error message instead.
Resolution
Access Confluence directly on the port that it is running on. You'll most likely need to use a browser on the server itself. Check to make sure that it is indeed an expired license that is causing the problem.
- Rollback Confluence to its pre-upgrade state, apply a valid license, and repeat the upgrade.