bug(brain): first embed-sync tick reports errors=1 — find which file failed #19
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Symptom
Pod startup at 2026-05-19T10:58:16Z (image
7a13c756, first cold sync) logged:One file in
brain/wiki/failed to embed. The aggregate counter surfaces it but the per-file error is currently only written to the slog at the call site (vectorstore.Synccollects errors intoSyncResult.ErrorsandStartSynconly logs the count).After the DSN-leak fix redeploy at 11:04:56Z, the sync result wasn't re-logged because no new files were added/deleted/errored (the embed sync only emits the INFO line when
added+deleted>0 || len(errors)>0).What to do
Surface per-file error context in the log line — e.g.:
in
internal/vectorstore/sync.goStartSync/ next to the aggregate INFO line. Without this, every future sync error is a silent black box.Trigger a backfill (hyperguild issue for that lives alongside) and inspect the response —
POST /backfill-embeddingsreturnserrors[]per-file, which is the path to the root cause.Likely candidates:
.mdfile →embed: empty textrejection fromembed.Client.EmbedAcceptance criteria
vectorstore.StartSynclogs each per-file error individuallytask checkcleanSuperseded. Per-item embed sync error logging shipped in commit
078ec02(v0.7.0), and the underlying root cause is now also fixed (infra#37 + #38 / commit37fdd33/ v0.8.0).Live evidence:
Per-item logging in the live code:
When a per-file error happens now, the exact path + upstream error string is logged — that's how the chunking work (infra#38) identified the three oversized files. After chunking, the steady-state error count is 0.
Closes.