pollChanges Error occurred while refreshing the cache for directory
Asked by Elizabeth Sharp:

Hi,

We are in the processing of migrating to Data Center.

The existing production directory sync job that pull user and group data from Jira to Confluence no longer seems to function.

*"Synchronization failed. See server logs for details."*

The error that occurs with **normal logging** looks like this:

2023-02-09 15:19:46,176 WARN \[Caesium-1-1\] \[ratelimiting.internal.settings.RateLimitModificationSettingsService\] delete No RL settings found for user: \[40a1f3ae574f15xx574f4395350021\] - can't delete!!  
2023-02-09 15:19:46,196 WARN \[Caesium-1-1\] \[ratelimiting.internal.settings.RateLimitModificationSettingsService\] delete No RL settings found for user: \[40a1f3ae574f150b01234f43a8c9003a\] - can't delete!!  
2023-02-09 15:19:46,234 WARN \[Caesium-1-1\] \[confluence.impl.hibernate.ConfluenceHibernateTransactionManager\] doRollback Performing rollback. Transactions:  
-\>\[com.atlassian.crowd.directory.DbCachingRemoteChangeOperations.updateUsers\]: PROPAGATION_REQUIRES_NEW,ISOLATION_DEFAULT (Session #1639212302)

**With Debug logging**, I found the following stack trace. Has anyone else encountered this issue? What's the best solution?

Thanks!

-Liz

2023-02-03 11:47:08,188 ERROR \[Caesium-1-2\] \[atlassian.crowd.directory.DbCachingDirectoryPoller\] pollChanges Error occurred while refreshing the cache for directory \[ 3112961 \].

org.springframework.transaction.UnexpectedRollbackException: Transaction rolled back because it has been marked as rollback-only

at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:870)

at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:707)

at jdk.internal.reflect.GeneratedMethodAccessor104.invoke(Unknown Source)

at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)

at java.base/java.lang.reflect.Method.invoke(Unknown Source)

at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:344)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)

at com.sun.proxy.$Proxy77.commit(Unknown Source)

at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:654)

at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:407)

at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:119)

at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)

at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:215)

at com.sun.proxy.$Proxy3323.updateUsers(Unknown Source)

at com.atlassian.crowd.directory.DirectoryCacheImplUsingChangeOperations.addOrUpdateCachedUsers(DirectoryCacheImplUsingChangeOperations.java:58)

at com.atlassian.crowd.directory.ldap.cache.RemoteDirectoryCacheRefresher.synchroniseAllUsers(RemoteDirectoryCacheRefresher.java:94)

at com.atlassian.crowd.directory.synchronisation.cache.AbstractCacheRefresher.synchroniseAll(AbstractCacheRefresher.java:45)

at com.atlassian.crowd.directory.ldap.cache.EventTokenChangedCacheRefresher.synchroniseAll(EventTokenChangedCacheRefresher.java:62)

at com.atlassian.crowd.directory.DbCachingRemoteDirectory.synchroniseCache(DbCachingRemoteDirectory.java:1098)

at com.atlassian.crowd.manager.directory.DirectorySynchroniserImpl.lambda$synchronise$0(DirectorySynchroniserImpl.java:82)

at com.atlassian.crowd.audit.NoOpAuditLogContext.withAuditLogSource(NoOpAuditLogContext.java:17)

at com.atlassian.crowd.manager.directory.DirectorySynchroniserImpl.synchronise(DirectorySynchroniserImpl.java:80)

at com.atlassian.crowd.directory.DbCachingDirectoryPoller.pollChanges(DbCachingDirectoryPoller.java:45)

at com.atlassian.crowd.manager.directory.monitor.poller.DirectoryPollerJobRunner.runJob(DirectoryPollerJobRunner.java:92)

at com.atlassian.confluence.impl.schedule.caesium.JobRunnerWrapper.doRunJob(JobRunnerWrapper.java:117)

at com.atlassian.confluence.impl.schedule.caesium.JobRunnerWrapper.lambda$runJob$0(JobRunnerWrapper.java:87)

at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContextInternal(VCacheRequestContextManager.java:84)

at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContext(VCacheRequestContextManager.java:68)

at com.atlassian.confluence.impl.schedule.caesium.JobRunnerWrapper.runJob(JobRunnerWrapper.java:87)

at com.atlassian.scheduler.core.JobLauncher.runJob(JobLauncher.java:134)

at com.atlassian.scheduler.core.JobLauncher.launchAndBuildResponse(JobLauncher.java:106)

at com.atlassian.scheduler.core.JobLauncher.launch(JobLauncher.java:90)

at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.launchJob(CaesiumSchedulerService.java:435)

at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeLocalJob(CaesiumSchedulerService.java:402)

at com.atlassian.scheduler.caesium.impl.CaesiumSchedulerService.executeQueuedJob(CaesiumSchedulerService.java:380)

at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeJob(SchedulerQueueWorker.java:66)

at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.executeNextJob(SchedulerQueueWorker.java:60)

at com.atlassian.scheduler.caesium.impl.SchedulerQueueWorker.run(SchedulerQueueWorker.java:35)

at java.base/java.lang.Thread.run(Unknown Source)


Answers:
author: Shannon S
body: Hello [@Elizabeth Sharp](/t5/user/viewprofilepage/user-id/5016781),

Welcome to Atlassian Community! It's nice to have you.

I see you were able to raise a ticket with our on-prem support team. So I'm sharing the solution here on Community in case others have run into the same problem.

The directory couldn't sync because a username didn't match the existing username in Confluence. This resulted in the other users not being synchronized to the directory. My colleague in support shared the following feature request:

* [CONFSERVER-78861](https://jira.atlassian.com/browse/CONFSERVER-78861) to allow the sync to continue instead of failing

To resolve this issue, you'd fix the username on the Jira directory side to match the username on Confluence and attempt to resync. As I understand, this resolved your issue.

If you have any additional points to add, please do!

Take care,

Shannon \| Atlassian Community Support


Tags: confluence-server

migration-customer-care

server