XF 2.3 XFES 2.3.10 + Manticore 17.5.1 — HTTP 409 error on search rebuild (post indexing)

Zweeper

Member
Licensed customer
Hi,
 
I recently migrated a large vBulletin 6 forum to XenForo 2.3.10 and purchased XFES to use with Manticore Search. The search rebuild consistently fails at the same point with an HTTP 409 error.
 
Environment:
  • XenForo 2.3.10
  • XFES 2.3.10
  • Manticore Search 17.5.1 (d4cc0969e@26020616)
  • Columnar 10.2.2, Secondary 10.2.2
  • Ubuntu 22.04, PHP 8.2, MariaDB 11.4
  • Forum size: ~104K threads, ~558K posts, ~35K users
 
Configuration:
  • Manticore listens on 127.0.0.1:9308 (HTTP), 9306 (MySQL), 9312 (Sphinx)
  • XFES configured with: http://localhost:9308, index name "xenforo"
  • Stop words: None, Word stemming: None, Accent removal: disabled
  • (Note: Attempting to configure stop words/stemming in XFES caused a separate HTTP 501 error on _close index API — known Manticore limitation)
 
Manticore config (minimal):
Code:
searchd {
    listen = 127.0.0.1:9312
    listen = 127.0.0.1:9306:mysql
    listen = 127.0.0.1:9308:http
    log = /var/log/manticore/searchd.log
    query_log = /var/log/manticore/query.log
    pid_file = /run/manticore/searchd.pid
    data_dir = /var/lib/manticore
}
 
Steps to reproduce:
1. Fresh install of XFES, connect to Manticore on port 9308 — "Test settings" succeeds
2. Enable enhanced search, save config
3. Run php cmd.php xf-rebuild:search
4. Conversations and conversation messages index successfully (~12,890 documents)
5. When post indexing begins, the rebuild fails immediately with: Elasticsearch indexing error: Unknown error (HTTP code: 409)
 
What I've tried:
  • Dropping the index via mysql -h 127.0.0.1 -P 9306 -e "DROP TABLE IF EXISTS xenforo;" and rebuilding — same error
  • Restarting Manticore between attempts
  • Manually testing the Elasticsearch Bulk API with curl — works perfectly:
Code:
curl -s -X POST "http://127.0.0.1:9308/_bulk" \
  -H "Content-Type: application/x-ndjson" \
  -d '{"index":{"_index":"xenforo","_id":"1"}}
{"title":"test1","message":"hello"}
{"index":{"_index":"xenforo","_id":"2"}}
{"title":"test2","message":"world"}
'
Returns "errors":false with status 201 for both documents.
 
Stack trace:
Code:
#0 XFES\Elasticsearch\Api->request('post', '_bulk', ...)
#1 XFES\Elasticsearch\Api->bulkRequest(...)
#2 XFES\Search\Source\Elasticsearch->flushBulkIndexing()
#3 XFES\Search\Source\Elasticsearch->index(...)
#4 XF\Search\Search->index('post', ...)
#5 XF\Search\Search->indexEntities('post', ...)
#6 XF\Search\Search->indexRange('post', 0, 5000)
#7 XF\Job\SearchRebuild->run(8)
 
Manticore searchd.log: Shows no errors at all during the rebuild attempt. The 409 seems to come from Manticore's Elasticsearch emulation layer (Buddy) but nothing is logged server-side.
 
Question: Is XFES 2.3.10 officially compatible with Manticore 17.5? The XFES docs mention Elasticsearch — is Manticore's ES-compatible API fully supported? If so, any idea what could cause the 409 specifically during post bulk indexing when conversation indexing works fine?
 
Any help appreciated. Happy to provide more debug info.
 
Thanks!
 
Back
Top Bottom