open-notebook/open_notebook
Luis Novo 26d5349750
fix: handle empty/whitespace source content without retry loop (#576)
Source.vectorize() wrapped its own ValueError in DatabaseOperationError,
bypassing the stop_on=[ValueError] retry guard in process_source_command.
This caused up to 15 retries when processing files with no extractable
text, blocking sync API requests indefinitely.

- Re-raise ValueError directly in Source.vectorize() instead of wrapping
- Add .strip() check to catch whitespace-only content
- Skip vectorization gracefully in save_source() when content is empty
- Add unit tests for vectorize error handling

Fixes #560
2026-02-14 18:09:07 -03:00
..
ai feat: credential-based API key management (#477) (#540) 2026-02-10 08:30:22 -03:00
database fix: turn the embedding field into optional (#557) 2026-02-10 11:24:17 -03:00
domain fix: handle empty/whitespace source content without retry loop (#576) 2026-02-14 18:09:07 -03:00
graphs fix: handle empty/whitespace source content without retry loop (#576) 2026-02-14 18:09:07 -03:00
podcasts Feat/localization tests docker (#371) 2026-01-15 13:51:05 -03:00
utils feat: credential-based API key management (#477) (#540) 2026-02-10 08:30:22 -03:00
__init__.py refactor: move environment variables loading to application entry point (#283) 2025-12-01 14:59:50 -03:00
CLAUDE.md feat: credential-based API key management (#477) (#540) 2026-02-10 08:30:22 -03:00
config.py feat: add persistent tiktoken cache to reduce re-downloads (#171) 2025-10-19 14:50:52 -03:00
exceptions.py refactor database module and migrations 2024-10-30 16:33:07 -03:00