How do I enable daily reports without re-enabling recommended updates?

When Confluence 4.x came out, it introduced recommended updates. Popular pages sent to your inbox. Unfortunately, this optional feature was enabled by default for all users and it ultimately spammed our entire user base. The recommended approach to disable that feature was to disable the daily-summary-email plug-in. It worked.

And... daily updates emails were still sent out (not the popular pages email).

We just upgraded to Confluence 5.3 and our daily updates emails have stopped sending. The error indicates that a template from the daily-summary-email plug-in is required. However, we have that disabled to avoid the popular pages email spamming.

How can we get our daily updates emails working again and still leave the popular pages email feature disabled?

2013-11-19 00:00:44,353 ERROR [scheduler_Worker-5] [confluence.mail.jobs.DefaultDailyReportManager] queueDailyReportEmail Failed to create daily report for user hjsimpson
com.atlassian.confluence.renderer.template.TemplateRenderingException: Unable to compile Soy template in plugin module: com.atlassian.confluence.plugins.confluence-daily-summary-email:chrome-template
	at com.atlassian.confluence.plugins.soy.ConfluenceSoyTemplateRenderer.renderTo(ConfluenceSoyTemplateRenderer.java:42)
	at com.atlassian.confluence.renderer.template.DelegatingTemplateRenderer.renderTo(DelegatingTemplateRenderer.java:44)
	at com.atlassian.confluence.renderer.template.DelegatingTemplateRenderer.renderTo(DelegatingTemplateRenderer.java:25)
	at com.atlassian.confluence.mail.template.AbstractMailNotificationQueueItem.renderTemplate(AbstractMailNotificationQueueItem.java:310)
	at com.atlassian.confluence.mail.template.PreRenderedMailNotificationQueueItem.access$201(PreRenderedMailNotificationQueueItem.java:47)
	at com.atlassian.confluence.mail.template.PreRenderedMailNotificationQueueItem$2.call(PreRenderedMailNotificationQueueItem.java:337)
	at com.atlassian.confluence.mail.template.PreRenderedMailNotificationQueueItem$2.call(PreRenderedMailNotificationQueueItem.java:333)
	at com.atlassian.confluence.user.AuthenticatedUserImpersonator$2.call(AuthenticatedUserImpersonator.java:134)
	at com.atlassian.confluence.user.AuthenticatedUserImpersonator$1.call(AuthenticatedUserImpersonator.java:113)
	at com.atlassian.confluence.user.AuthenticatedUserImpersonator.asUser(AuthenticatedUserImpersonator.java:89)
	at com.atlassian.confluence.mail.template.PreRenderedMailNotificationQueueItem.renderTemplateForRecipient(PreRenderedMailNotificationQueueItem.java:332)
	at com.atlassian.confluence.mail.template.PreRenderedMailNotificationQueueItem.renderTemplate(PreRenderedMailNotificationQueueItem.java:287)
	at com.atlassian.confluence.mail.template.AbstractMailNotificationQueueItem.renderLegacyTemplate(AbstractMailNotificationQueueItem.java:303)
	at com.atlassian.confluence.mail.template.AbstractMailNotificationQueueItem.preRenderBody(AbstractMailNotificationQueueItem.java:223)
	at com.atlassian.confluence.mail.template.PreRenderedMailNotificationQueueItem$Builder.render(PreRenderedMailNotificationQueueItem.java:498)
	at com.atlassian.confluence.mail.jobs.DefaultDailyReportManager.queueDailyReportEmail(DefaultDailyReportManager.java:134)
	at com.atlassian.confluence.mail.jobs.DefaultDailyReportManager.generateDailyReports(DefaultDailyReportManager.java:92)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
	at com.atlassian.spring.interceptors.SpringProfilingInterceptor.invoke(SpringProfilingInterceptor.java:16)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
	at com.sun.proxy.$Proxy92.generateDailyReports(Unknown Source)
	at com.atlassian.confluence.mail.jobs.DailyReportJob.doExecute(DailyReportJob.java:29)
	at com.atlassian.quartz.jobs.AbstractJob.executeInternal(AbstractJob.java:88)
	at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
	at com.atlassian.confluence.setup.quartz.DelegatingClusterAwareQuartzJobBean.executeJob(DelegatingClusterAwareQuartzJobBean.java:16)
	at com.atlassian.confluence.setup.quartz.AbstractClusterAwareQuartzJobBean.surroundJobExecutionWithLogging(AbstractClusterAwareQuartzJobBean.java:64)
	at com.atlassian.confluence.setup.quartz.AbstractClusterAwareQuartzJobBean.executeInternal(AbstractClusterAwareQuartzJobBean.java:46)
	at org.springframework.scheduling.quartz.QuartzJobBean.execute(QuartzJobBean.java:86)
	at org.quartz.core.JobRunShell.run(JobRunShell.java:199)
	at com.atlassian.confluence.schedule.quartz.ConfluenceQuartzThreadPool$1.run(ConfluenceQuartzThreadPool.java:20)
	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
Caused by: com.atlassian.soy.renderer.SoyException: Unable to compile Soy template in plugin module: com.atlassian.confluence.plugins.confluence-daily-summary-email:chrome-template
	at com.atlassian.soy.impl.DefaultSoyManager.render(DefaultSoyManager.java:123)
	at com.atlassian.soy.impl.SoyTemplateRendererImpl.render(SoyTemplateRendererImpl.java:40)
	at sun.reflect.GeneratedMethodAccessor732.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
	at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:58)
	at org.springframework.osgi.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:62)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:56)
	at org.springframework.osgi.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:39)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.osgi.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:59)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:131)
	at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:119)
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
	at com.sun.proxy.$Proxy847.render(Unknown Source)
	at com.atlassian.confluence.plugins.soy.ConfluenceSoyTemplateRenderer.renderTo(ConfluenceSoyTemplateRenderer.java:38)
	... 39 more
Caused by: com.google.common.util.concurrent.UncheckedExecutionException: java.lang.IllegalStateException: Required plugin module com.atlassian.confluence.plugins.confluence-daily-summary-email:chrome-template was either missing or disabled
	at com.google.common.cache.CustomConcurrentHashMap$ComputedUncheckedException.get(CustomConcurrentHashMap.java:3305)
	at com.google.common.cache.CustomConcurrentHashMap$ComputingValueReference.compute(CustomConcurrentHashMap.java:3441)
	at com.google.common.cache.CustomConcurrentHashMap$Segment.compute(CustomConcurrentHashMap.java:2322)
	at com.google.common.cache.CustomConcurrentHashMap$Segment.getOrCompute(CustomConcurrentHashMap.java:2291)
	at com.google.common.cache.CustomConcurrentHashMap.getOrCompute(CustomConcurrentHashMap.java:3802)
	at com.google.common.cache.ComputingCache.get(ComputingCache.java:46)
	at com.google.common.cache.AbstractCache.getUnchecked(AbstractCache.java:49)
	at com.atlassian.soy.impl.TemplateSetFactory.get(TemplateSetFactory.java:63)
	at com.atlassian.soy.impl.DefaultSoyManager.strainTofu(DefaultSoyManager.java:209)
	at com.atlassian.soy.impl.DefaultSoyManager.access$100(DefaultSoyManager.java:36)
	at com.atlassian.soy.impl.DefaultSoyManager$1.load(DefaultSoyManager.java:68)
	at com.atlassian.soy.impl.DefaultSoyManager$1.load(DefaultSoyManager.java:64)
	at com.google.common.cache.CustomConcurrentHashMap$ComputingValueReference.compute(CustomConcurrentHashMap.java:3426)
	at com.google.common.cache.CustomConcurrentHashMap$Segment.compute(CustomConcurrentHashMap.java:2322)
	at com.google.common.cache.CustomConcurrentHashMap$Segment.getOrCompute(CustomConcurrentHashMap.java:2291)
	at com.google.common.cache.CustomConcurrentHashMap.getOrCompute(CustomConcurrentHashMap.java:3802)
	at com.google.common.cache.ComputingCache.get(ComputingCache.java:46)
	at com.google.common.cache.AbstractCache.getUnchecked(AbstractCache.java:49)
	at com.atlassian.soy.impl.DefaultSoyManager.render(DefaultSoyManager.java:104)
	... 61 more
Caused by: java.lang.IllegalStateException: Required plugin module com.atlassian.confluence.plugins.confluence-daily-summary-email:chrome-template was either missing or disabled
	at com.atlassian.soy.impl.TemplateSetFactory$TemplateSetBuilder.addTemplatesForTree(TemplateSetFactory.java:99)
	at com.atlassian.soy.impl.TemplateSetFactory$TemplateSetBuilder.access$200(TemplateSetFactory.java:82)
	at com.atlassian.soy.impl.TemplateSetFactory.findRequiredTemplates(TemplateSetFactory.java:76)
	at com.atlassian.soy.impl.TemplateSetFactory.access$000(TemplateSetFactory.java:25)
	at com.atlassian.soy.impl.TemplateSetFactory$1.load(TemplateSetFactory.java:47)
	at com.atlassian.soy.impl.TemplateSetFactory$1.load(TemplateSetFactory.java:43)
	at com.google.common.cache.CustomConcurrentHashMap$ComputingValueReference.compute(CustomConcurrentHashMap.java:3426)
	... 78 more

2 answers

1 accepted

I received a response from Atlassian support. The explanation was that the cross dependencies on these plug-ins was due to the new use of soy templates with 5.x. The recommended fix was to re-enable the recommended updates plug-in and immediately disable the scheduled job that sends the recommneded updates email.

For now I suppose this may work but I am not keen on these separate plugins having dependency between them.

Hi Chad,

You should check there's a bug report for this one, or create it: https://jira.atlassian.com/browse/CONF

Regards,

Adrien

Suggest an answer

Log in or Sign up to answer
How to earn badges on the Atlassian Community

How to earn badges on the Atlassian Community

Badges are a great way to show off community activity, whether you’re a newbie or a Champion.

Learn more
Community showcase
Posted 3 hours ago in Confluence

Calling all marketing teams who use Confluence - we want to hear from you!

Hi Community! me again 🙂 If you’re a marketing team using Confluence, we want to hear your story! How did you start using Confluence? What are your use cases? What have been some of the benefits?...

25 views 0 2
Join discussion

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you