RootCauseunvalidated
AbortSignal.timeout(2500) — scanLayer4Sync() in packages/privacy/src/api-helpers.ts wraps a fetch to OpenAI chat/completions (model: gpt-4o-mini). Tension: On timeout it returns { findings: [], timedOut: true } and the caller commits the row as privacy_review_status='pending' and enqueues an async sweep. Outcome: when the sync call SUCCEEDS, OpenAI gpt-4o-mini returns in 1.6–1.9s.
160a2eee-fdee-49d8-bc11-9c29f5297170
AbortSignal.timeout(2500) — scanLayer4Sync() in packages/privacy/src/api-helpers.ts wraps a fetch to OpenAI chat/completions (model: gpt-4o-mini). Tension: On timeout it returns { findings: [], timedOut: true } and the caller commits the row as privacy_review_status='pending' and enqueues an async sweep. Outcome: when the sync call SUCCEEDS, OpenAI gpt-4o-mini returns in 1.6–1.9s.