-
Type:
Bug
-
Resolution: Fixed
-
Priority:
Low
-
Affects Version/s: 9.1.0, 9.2.0, 9.2.6, 9.5.2
-
Component/s: Macros - Other Macros
-
1
-
Severity 3 - Minor
Issue Summary
On Confluence 9.1.0 and onwards, pages which contain "Spaces List" macro cannot be loaded on mobile browsers with "Oops! Something went wrong. It's probably us, but it might be you. Check your network connection." error.
Additionally, "Space Attachments", "Create Space Button", "Team Calendar", "Contributors" macros also have the same issue.
The symptom didn't occur on Confluence 8.5 nor 9.0.1.
It is also reproducible on PC/Mac browsers by changing "User agent" to some mobile browsers. For example, run Chrome > open DevTools > navigate to "Network" tab > open "Network conditions" > uncheck "Use browser default" and select "Chrome - iPhone" (see this for details).
Steps to Reproduce
- Create a page which contains only "Space List" macro
- Access the page with a browser on a smartphone, or a desktop browser with mobile device's "User agent"
Expected Results
"View desktop version" icon is displayed.
Actual Results
"Oops! Something went wrong. It's probably us, but it might be you. Check your network connection." error is displayed after some waiting time.
The following stuck thread is also observed.
15-Jul-2025 02:56:34.758 WARNING [Catalina-utility-2] org.apache.catalina.valves.StuckThreadDetectionValve.notifyStuckThreadDetected Thread [http-nio-8090-exec-75 url: /confluence/rest/mobile/1.0/content/1081346; user: admin] (id=[1686]) has been active for [61,247] milliseconds (since [7/15/25, 2:55 AM]) to serve the same request for [https://linux-105809.prod.atl-cd.net/confluence/rest/mobile/1.0/content/1081346?knownContexts=&knownResources=] and may be stuck (configured threshold for this StuckThreadDetectionValve is [60] seconds). There is/are [1] thread(s) in total that are monitored by this Valve and may be stuck. java.lang.Throwable at java.base@17.0.15/java.lang.Object.wait(Native Method) at org.eclipse.gemini.blueprint.service.importer.support.internal.support.RetryTemplate.execute(RetryTemplate.java:104) at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceDynamicInterceptor.lookupService(ServiceDynamicInterceptor.java:427) at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceDynamicInterceptor.getTarget(ServiceDynamicInterceptor.java:400) at org.eclipse.gemini.blueprint.service.importer.support.internal.aop.ServiceInvoker.invoke(ServiceInvoker.java:60) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:137) at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) 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:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.eclipse.gemini.blueprint.service.importer.support.LocalBundleContextAdvice.invoke(LocalBundleContextAdvice.java:57) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.aop.support.DelegatingIntroductionInterceptor.doProceed(DelegatingIntroductionInterceptor.java:137) at org.springframework.aop.support.DelegatingIntroductionInterceptor.invoke(DelegatingIntroductionInterceptor.java:124) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186) at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:762) at org.springframework.aop.framework.CglibAopProxy$FixedChainStaticTargetInterceptor.intercept(CglibAopProxy.java:658) at com.atlassian.confluence.macro.xhtml.XhtmlMacroManager$$EnhancerBySpringCGLIB$$f1030ff6.getMacroByName(<generated>) at com.atlassian.confluence.plugins.mobile.render.UnknownMobileMacroMarshaller.marshal(UnknownMobileMacroMarshaller.java:44) at com.atlassian.confluence.plugins.mobile.render.UnknownMobileMacroMarshaller.marshal(UnknownMobileMacroMarshaller.java:25) at com.atlassian.confluence.content.render.xhtml.view.macro.ViewMacroMarshaller.marshalInternal(ViewMacroMarshaller.java:131) at com.atlassian.confluence.content.render.xhtml.view.macro.ViewMacroMarshaller.lambda$marshal$0(ViewMacroMarshaller.java:116) at com.atlassian.confluence.content.render.xhtml.view.macro.ViewMacroMarshaller$$Lambda$8040/0x0000731ffb8a62f8.marshal(Unknown Source) at com.atlassian.confluence.impl.content.render.xhtml.analytics.MetricsCollectingMarshaller.marshal(MetricsCollectingMarshaller.java:49) at com.atlassian.confluence.content.render.xhtml.view.macro.ViewMacroMarshaller.marshal(ViewMacroMarshaller.java:120) at com.atlassian.confluence.content.render.xhtml.view.macro.ViewMacroMarshaller.marshal(ViewMacroMarshaller.java:52) at com.atlassian.confluence.content.render.xhtml.UnmarshalMarshalFragmentTransformer.transform(UnmarshalMarshalFragmentTransformer.java:29) at com.atlassian.confluence.content.render.xhtml.transformers.DefaultFragmentTransformer.transformFragment(DefaultFragmentTransformer.java:141) at com.atlassian.confluence.content.render.xhtml.transformers.DefaultFragmentTransformer.transform(DefaultFragmentTransformer.java:123) at com.atlassian.confluence.content.render.xhtml.storage.StorageXhtmlTransformer.transform(StorageXhtmlTransformer.java:41) at com.atlassian.confluence.content.render.xhtml.TransformerChain.transform(TransformerChain.java:38) at com.atlassian.confluence.content.render.xhtml.DefaultRenderer.renderWithoutMetrics(DefaultRenderer.java:190) ...
Workaround
Use "Switch to desktop version" option in the menu.