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

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

View file

@ -29,6 +29,7 @@ from .base import (
check_duplicate_document_by_hash,
get_connector_by_id,
logger,
mark_connector_documents_failed,
update_connector_last_indexed,
)
@ -479,6 +480,23 @@ async def index_google_gmail_messages(
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.GOOGLE_GMAIL_CONNECTOR,
search_space_id=search_space_id,
failures=stuck_placeholders,
)
# ── Finalize ──────────────────────────────────────────────────
await update_connector_last_indexed(session, connector, update_last_indexed)