Unable to complete execution of health check Collaborative Editing Mode due to an exception
Asked by David Bonet Montes:

2018-04-15 22:42:18,192 WARN \[HealthCheckWatchdog:thread-3\] \[troubleshooting.healthcheck.concurrent.SupportHealthCheckTask\] healthCheckError Unable to complete execution of health check Collaborative Editing Mode due to an exception  
java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Base URL misconfigured: \<null\>  
at java.util.concurrent.FutureTask.report(FutureTask.java:122)  
at java.util.concurrent.FutureTask.get(FutureTask.java:206)  
at com.atlassian.troubleshooting.healthcheck.concurrent.SupportHealthCheckTask.getFutureWithTimeout(SupportHealthCheckTask.java:88)  
at com.atlassian.troubleshooting.healthcheck.concurrent.SupportHealthCheckTask.lambda$runAsync$0(SupportHealthCheckTask.java:68)  
at java.util.concurrent.FutureTask.run(FutureTask.java:266)  
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)  
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)  
at java.lang.Thread.run(Thread.java:748)  
Caused by: java.lang.IllegalStateException: Base URL misconfigured: \<null\>  
at com.atlassian.confluence.api.impl.sal.ConfluenceApplicationProperties.getCanonicalContextPath(ConfluenceApplicationProperties.java:94)  
at com.atlassian.fugue.Option$2.fold(Option.java:373)  
at com.atlassian.fugue.Option.getOrElse(Option.java:207)  
at com.atlassian.confluence.api.impl.sal.ConfluenceApplicationProperties.getBaseUrl(ConfluenceApplicationProperties.java:58)  
at sun.reflect.GeneratedMethodAccessor323.invoke(Unknown Source)  
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
at java.lang.reflect.Method.invoke(Method.java:498)  
at com.atlassian.plugin.util.ContextClassLoaderSettingInvocationHandler.invoke(ContextClassLoaderSettingInvocationHandler.java:26)  
at com.sun.proxy.$Proxy317.getBaseUrl(Unknown Source)  
at sun.reflect.GeneratedMethodAccessor323.invoke(Unknown Source)  
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)  
at java.lang.reflect.Method.invoke(Method.java:498)  
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:302)  
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.doInvoke(ServiceInvoker.java:56)  
at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60)  
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)  
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)  
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)  
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)  
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invokeUnprivileged(ServiceTCCLInterceptor.java:70)  
at org.eclipse.gemini.blueprint.service.util.internal.aop.ServiceTCCLInterceptor.invoke(ServiceTCCLInterceptor.java:53)  
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)  
at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57)  
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)  
at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:133)  
at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:121)  
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)  
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:208)  
at com.sun.proxy.$Proxy1671.getBaseUrl(Unknown Source)  
at com.atlassian.troubleshooting.healthcheck.SupportHealthStatusBuilder.getHelpPathUrl(SupportHealthStatusBuilder.java:114)  
at com.atlassian.troubleshooting.healthcheck.SupportHealthStatusBuilder.buildStatus(SupportHealthStatusBuilder.java:135)  
at com.atlassian.troubleshooting.healthcheck.SupportHealthStatusBuilder.warning(SupportHealthStatusBuilder.java:75)  
at com.atlassian.troubleshooting.confluence.healthcheck.support.CollabEditingModeSupportHealthCheck.check(CollabEditingModeSupportHealthCheck.java:39)  
at com.atlassian.troubleshooting.healthcheck.impl.PluginSuppliedSupportHealthCheck.check(PluginSuppliedSupportHealthCheck.java:49)  
... 4 more  
Caused by: java.net.MalformedURLException  
at java.net.URL.\<init\>(URL.java:627)  
at java.net.URL.\<init\>(URL.java:490)  
at java.net.URL.\<init\>(URL.java:439)  
at com.atlassian.confluence.api.impl.sal.ConfluenceApplicationProperties.getCanonicalContextPath(ConfluenceApplicationProperties.java:92)  
... 37 more  
Caused by: java.lang.NullPointerException  
at java.net.URL.\<init\>(URL.java:532)  
... 40 more


Answers:
author: David Bonet Montes
body: Hi! Finally it came to be a Confluence cloud to server migration bug: <https://jira.atlassian.com/browse/CONFSERVER-45919>  

Just edit and save the general configs and it solved the problem


author: Nic Brough -Adaptavist-
body: This healthcheck can fail like this when Confluence cannot talk to itself. This is often a proxy thing (users all land on a proxy that expects them to come in from the outside, but the proxy is not configured to accept connections from the confluence server, so it doesn't route back to itself)

The most common cause is the one I manage to create every time I'm tinkering with SSL - I get the certificates wrong, often forgetting to import the certs in Confluence. So when it tries to talk to itself, it can't present a valid cert and fails.


author: AnnWorley
body: The error message seems to indicate a null value for your Confluence Base URL:

```
2018-04-15 22:42:18,192 WARN [HealthCheckWatchdog:thread-3] [troubleshooting.healthcheck.concurrent.SupportHealthCheckTask] healthCheckError Unable to complete execution of health check Collaborative Editing Mode due to an exception
java.util.concurrent.ExecutionException: java.lang.IllegalStateException: Base URL misconfigured: <null>
```

Base URL settings are known to cause issues with collaborative editing. Please check your BAse URL as described in [Unable to edit any pages in Confluence 6.x due to Collaborative Editing](https://confluence.atlassian.com/confkb/unable-to-edit-any-pages-in-confluence-6-x-due-to-collaborative-editing-867362716.html):
> Please take note of the protocol (http or https) that Confluence is using. Go to Confluence Admin \> General Configuration to check Confluence's Base URL.  

comments: author: David Bonet Montes
body: Hi! Thanks for answering, but I see the Base URL properly configured as far I can see.

![Screenshot from 2018-04-17 20-26-42.png](https://community.atlassian.com/t5/image/serverpage/image-id/19879iCEB0097AEA10AD5A/image-size/large?v=v2&px=999 "Screenshot from 2018-04-17 20-26-42.png")


author: David Bonet Montes
body: [@AnnWorley](/t5/user/viewprofilepage/user-id/502040)Do you have any idea of why?


Tags: collaborative-editing