1

In my CM logs, I'm seeing the following warning repeatedly.

WARN  Could not persist PublisherOperations in the service
Exception: Polly.CircuitBreaker.BrokenCircuitException
Message: The circuit is now open and is not allowing calls.
Source: Polly
   at Polly.CircuitBreaker.CircuitStateController`1.OnActionPreExecute()
   at Polly.CircuitBreaker.CircuitBreakerEngine.<ImplementationAsync>d__1`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Polly.Policy.<ExecuteAndCaptureAsync>d__35.MoveNext()

Nested Exception

Exception: Sitecore.Framework.Publishing.Client.Http.HttpServiceResponseException
Message: The remote service encountered a problem processing the request:
ServiceUnavailable Service Unavailable
System.Net.Http.StreamContent
Source: Sitecore.Framework.Publishing.Client.Http
   at Sitecore.Framework.Publishing.Client.Http.JsonClient.<SendRequest>d__14.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Sitecore.Framework.Publishing.Client.Http.BaseClient`1.<Handle>d__7`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Polly.CircuitBreakerSyntaxAsync.<>c__DisplayClass4_1.<<CircuitBreakerAsync>b__2>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Polly.CircuitBreaker.CircuitBreakerEngine.<ImplementationAsync>d__1`1.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Polly.Policy.<ExecuteAndCaptureAsync>d__35.MoveNext()

It seems like it's having issues connecting to the publishing service endpoint, but the publishing process works just fine (i.e. publishing items results in their being in the destination databases and we can monitor status from the dashboard, etc.).

Has anyone seen this issue and resolved it in the past?

Environment:

  • Sitecore 9.0.2
  • Sitecore Publishing Service (SPS) 3.1.3 rev 190424
  • Azure PaaS
  • Is this a new issue that has started occurring recently, or this has always been in your CM instance. Your publishing service could be up and running, but it doesn't mean your CM instance can connect to this. Which requires checking connectivity or hostname resolution issue. Don't think it can be a firewall issue, but work with your infrastructure to validate connectivity between CM and Publishing instance – Julius A Mar 17 at 16:57
  • It's been happening for a long time. The publishing process is working fine, so I know that connectivity between the two is functional. – Dan Sinclair Mar 18 at 17:09
1

After contacting Sitecore support, it seems that this is caused by a timeout in the Publishing Service which then gets passed through to the CM server.

The fix was:

  1. Extend the timeout on the publishing service configuration

    In the /config/sitecore/publishing/sc.publishing.xml, change the <CommandTimeout> element for the <sql-backend-default> connection to be larger. The default is 120, we set ours to 360:

    <sql-backend-default>
        <Type>Sitecore.Framework.Publishing.Data.AdoNet.NoRetryConnectionBehaviour, Sitecore.Framework.Publishing.Data</Type>
        <Options>
            <Name>Default Backend No Retry behaviour</Name>
            <CommandTimeout>360</CommandTimeout>
        </Options>
    </sql-backend-default>
    
  2. Restart the publishing service server

  3. Restart the CM server
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.