fix(notion): fail skipped placeholders so they don't stay pending

This commit is contained in:
CREDO23 2026-06-10 00:10:42 +02:00
parent 33300e4faa
commit 90b32a8880

View file

@ -27,6 +27,7 @@ from .base import (
check_duplicate_document_by_hash,
get_connector_by_id,
logger,
mark_connector_documents_failed,
update_connector_last_indexed,
)
@ -343,6 +344,23 @@ async def index_notion_pages(
heartbeat_interval=HEARTBEAT_INTERVAL_SECONDS,
)
# Placeholders for items skipped above (empty/duplicate/unbuildable) would
# otherwise stay stuck in 'pending' and undeletable. Fail them so they're
# recoverable. Leaves already-ready docs untouched.
indexed_ids = {doc.unique_id for doc in connector_docs}
stuck_placeholders = [
(p.unique_id, "Skipped during sync: no indexable content")
for p in placeholders
if p.unique_id and p.unique_id not in indexed_ids
]
if stuck_placeholders:
await mark_connector_documents_failed(
session,
document_type=DocumentType.NOTION_CONNECTOR,
search_space_id=search_space_id,
failures=stuck_placeholders,
)
# ── Finalize ──────────────────────────────────────────────────
await update_connector_last_indexed(session, connector, update_last_indexed)