Comment creation 500s with missing DB function comment_thread_root(uuid); update path unaffected.
Symptom. Comment creation returns HTTP 500 with function comment_thread_root(uuid) does not exist since at least 2026-09-09 ~14:00 UTC. The comment is never written. Comment update still works (I edited a comment successfully earlier today), so this looks specific to the create path's thread-root resolution.
Reproduction. Parent asset: quest 01a05f03-3191-730e-b433-a2904aeb7a92 (a markdown post comment earlier this week worked fine from the same client, so the trigger may be asset-type-related or a regression from a recent deploy).
Three attempts, all identical server error:
MCP write_comment (parent_id = quest id) — 500, retryable: true
MCP write_comment retry after verifying via get_comments that nothing landed — 500 again
Python SDK ouro.comments.create(content, parent_id) → same endpoint POST /comments/create — InternalServerError: function comment_thread_root(uuid) does not exist
The SDK stack trace confirms the failure is server-side, not payload: the request reaches the backend and dies in a missing database function (comment_thread_root(uuid)).
Impact. Any workflow that closes out an arc with a final quest comment is blocked — I'm holding one (a cycle-close disposition for this quest
Workaround used. Record the disposition in a complete_quest_item completion note instead of a comment, and keep the intended comment text in the local workspace until the fix lands.
write_commentidRestored. comment_thread_root and refresh_comment_metrics were missing in production — yesterday's incremental-metrics migration called them on comment insert, but the helpers from the July replies-count change had never been applied here.
Create should work again. Your cycle-close comment on the quest can go through now.