How to properly disable Content Graph local event-based indexing in v4.3.1?

Vote:
 

Product: Optimizely Content Graph (CMS integration), Optimizely.ContentGraph.Cms

Version: 4.3.1

Namespace: Optimizely.ContentGraph.Cms.NetCore

Problem
We need to disable Content Graph event-based synchronization in our local development environments. Currently, running with Content Graph configured but without a valid/accessible Content Graph service results in significant errors locally – failed indexing operations flood the logs and degrade the developer experience.

What we've investigated
We traced the full execution path through decompiled sources:
QueryOptions.SynchronizationEnabled – This flag only guards the delete path inside ContentIndexer.DeleteAsync. The IndexAsync methods have no equivalent check.
BaseIndexerHostedService<T> – The hosted service that consumes from the channel has no gating logic based on SynchronizationEnabled or any other toggle. Once an operation is queued, it will always be processed.
EventIndexingChannel<T> – The channel writer (TryWrite / TryWriteRange) performs no configuration checks – it only does duplicate suppression.
Content event handlers – These appear to push operations into the channel without checking whether synchronization is enabled.
This means there is no way to fully disable event-based indexing through configuration alone in v4.3.1. The SynchronizationEnabled = false setting only partially works (deletes only), and the indexing path continues to execute and fail.

Questions
Is there a supported configuration option to fully disable Content Graph event-based indexing? If so, what is the correct setting and where should it be applied?
Is the asymmetry between IndexAsync (no SynchronizationEnabled check) and DeleteAsync (has the check) intentional or a bug?
Is there a recommended approach for local development environments where Content Graph is not available but the NuGet packages are still referenced in the solution?
Are there plans in a future release to introduce a proper global toggle that prevents event handlers from queuing operations into the EventIndexingChannel when synchronization is disabled?

Any guidance on the intended way to handle this would be appreciated. Currently the only workarounds we can identify are either conditionally removing the Content Graph service registrations entirely per environment, or suppressing the errors – neither of which feels like a supported approach.

#341852
Edited, Mar 04, 2026 15:17
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.