Confluence Questions registers duplicate edge field mappings (Long vs String) causing WARNs with OpenSearch

XMLWordPrintable

    • 1
    • Severity 3 - Minor

      Issue Summary

      Confluence Data Center with OpenSearch and Questions for Confluence logs repeated WARN messages about conflicting field mappings for edge.id and edge.targetId. The core Edge Index plugin registers these fields as string/keyword, while the Questions plugin also registers them as long/numeric, causing FieldMappings conflicts.

      Also in some cases conflicting field-mapping WARNs are observed for the cq-topic-name-2-gram field that use the TwoGramAnalyzerDescriptor analyzer class. The mappings are structurally identical (same field type, storage and indexed flags, and analyzer class) but differ in object identity, which triggers the conflict detection:

      Steps to Reproduce

      1. Install and run Confluence Data Center 9.2.14 configured to use OpenSearch as the search backend.
      2. Install and enable Questions for Confluence (e.g. 5.0.9 or 5.0.11, later).
      3. Start Confluence and allow background jobs (Caesium) to run normally.
      4. Monitor the atlassian-confluence.log file on any node over time.

      Expected Results

      • edge.id and edge.targetId are registered once with a consistent mapping (string/keyword) across all plugins.
      • Questions-related fields such as cq-topic-name-2-gram are also registered once with a single, consistent mapping.
      • No WARN messages are logged about conflicting mappings for these fields.

      Actual Results

      • During Caesium/background jobs, Confluence logs repeated WARN messages from confluence.search.v2.FieldMappings indicating that edge.id and edge.targetId are being registered with conflicting types (Long vs String).
      • During indexing, Confluence also logs repeated WARN messages indicating that the cq-topic-name-2-gram field is being registered multiple times with equivalent TextFieldMapping definitions using the TwoGramAnalyzerDescriptor analyzer. The mappings are functionally identical (same field type, storage and indexed flags, same analyzer class) but differ in object instance, which still triggers the conflict check.
      • OpenSearch index mappings show these fields as keyword (string), so indexing currently proceeds correctly, but log noise is generated and there is a risk if registration order changes.

      The below exception(s) are thrown in the atlassian-confluence.log file:

      • 2026-03-31 07:57:30,461 WARN [Caesium-1-2] [confluence.search.v2.FieldMappings] addMapping Mapping for 'edge.targetId' (LongFieldMapping{name='edge.targetId', stored=false, indexed=true}) conflicts with existing mapping (StringFieldMapping{name='edge.targetId', stored=true, indexed=true}).
        2026-03-31 07:57:30,461 WARN [Caesium-1-2] [confluence.search.v2.FieldMappings] addMapping Mapping for 'edge.id' (LongFieldMapping{name='edge.id', stored=false, indexed=true}) conflicts with existing mapping (StringFieldMapping{name='edge.id', stored=true, indexed=true}).
        

      and/or

      • 2026-03-31 08:14:59,895 WARN [Indexer: 8] [confluence.search.v2.FieldMappings] addMapping Mapping for 'cq-topic-name-2-gram' (TextFieldMapping{name='cq-topic-name-2-gram', stored=false, indexed=true, analyzer=com.atlassian.confluence.plugins.index.api.TwoGramAnalyzerDescriptor@3bf6d9ae}) conflicts with existing mapping (TextFieldMapping{name='cq-topic-name-2-gram', stored=false, indexed=true, analyzer=com.atlassian.confluence.plugins.index.api.TwoGramAnalyzerDescriptor@20410828}).
        application-logs/atlassian-confluence.log.5:2026-03-31 08:14:59,896 WARN [Indexer: 27] [confluence.search.v2.FieldMappings] addMapping Mapping for 'cq-topic-name-2-gram' (TextFieldMapping{name='cq-topic-name-2-gram', stored=false, indexed=true, analyzer=com.atlassian.confluence.plugins.index.api.TwoGramAnalyzerDescriptor@3bf6d9ae}) conflicts with existing mapping (TextFieldMapping{name='cq-topic-name-2-gram', stored=false, indexed=true, analyzer=com.atlassian.confluence.plugins.index.api.TwoGramAnalyzerDescriptor@20410828}).
        application-logs/atlassian-confluence.log.5:2026-03-31 08:14:59,901 WARN [Indexer: 35] [confluence.search.v2.FieldMappings] addMapping Mapping for 'cq-topic-name-2-gram' (TextFieldMapping{name='cq-topic-name-2-gram', stored=false, indexed=true, analyzer=com.atlassian.confluence.plugins.index.api.TwoGramAnalyzerDescriptor@3bf6d9ae}) conflicts with existing mapping (TextFieldMapping{name='cq-topic-name-2-gram', stored=false, indexed=true, analyzer=com.atlassian.confluence.plugins.index.api.TwoGramAnalyzerDescriptor@20410828})
        

      Workaround

      Currently there is no known workaround for this behavior. A workaround will be added here when available

      Impact to indexing or search 

       These WARNs are currently non‑destructive (no indexing failures or data loss expected).

              Assignee:
              Unassigned
              Reporter:
              Arun Suryawanshi
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

                Created:
                Updated: