Issues Log
Issues found during live flow testing sessions. Each file covers one issue with root cause and fix instructions.
| File | Status | Summary |
|---|---|---|
| brand-extractor-name-undefined.md | ✅ Fixed | __name is not defined in page.evaluate() — brand extraction always skipped |
| linkedin-insights-max-turns.md | ✅ Fixed | LinkedIn insights fail with “Reached maximum turns per run” — maxTurnsPerRun 1→3 |
| deliverable-planner-max-turns.md | ✅ Fixed | Deliverable planner fails with max-turns/timeout — missing allowedTools:[] |
| channel-action-suggester-exit-code-1.md | ✅ Fixed | Claude subprocess exits with code 1 — concurrent jobs share cwd, Job B kills Job A via .agent.pid; fixed by concurrency:3→1 |
| opportunity-matcher-lock-expiry.md | ✅ Fixed | BullMQ lock expires during LLM scoring of 131 candidates — lockDuration + lockRenewTime added |
| duplicate-website-insights.md | ✅ Fixed | Website insights ran twice when Brand Assets Refresh triggered a second crawl — guard added |
| crawler-zero-pages-indexed.md | ✅ Fixed | Crawl reports 0 pagesIndexed — root cause: wrong ID type passed to RAG |
| rag-content-wrong-file-id.md | ✅ Fixed | WebPage.id passed as RagFile fileId — all website RAG content silently skipped |
| api-statuscode-null-logging.md | ✅ Fixed | All API responses log statusCode: null — custom res serializer in createLogger() |
| max-listeners-warning.md | ✅ Fixed | MaxListenersExceededWarning — process.setMaxListeners() added to 3 servers |
| ragengine-missing-openai-key.md | ✅ Fixed | RAG ingestion 401 — AZURE_OPENAI_API_KEY/AZURE_OPENAI_ENDPOINT/EMBEDDING_PROVIDER added to ragengine .env; EMBEDDING_PROVIDER env fallback added to getProviderConfig() |
| channel-health-scores-missing.md | ✅ Fixed | Website/LandingPage/Google Ads show “Not scored yet” — wrong models; buildHealthSummary + Google Ads worker fixed |
| strategy-timeline-unknown-actor.md | ✅ Fixed | Strategy timeline shows “Unknown” for client approvals — name missing from JWT AccessTokenPayload |
| deliverable-planner-timeout-900s.md | 🔴 Open | Deliverable planner takes 7-15 min — full context/strategy injection + Sonnet; proposed: section extraction + action item cap |
| activity-planner-slow-runtime.md | 🔴 Open | Activity planner takes ~8 min — missing allowedTools/maxTurnsPerRun + full context injection + tight lockDuration buffer |
| keyword-researcher-json-parsing.md | ✅ Fixed | keyword-researcher postProcess brittle regex dropped JSON when Claude wrote prose before the block; fixed with brace-depth extractJson + promptSuffix enforcement |
| notification-missing-email-templates.md | ✅ Fixed | 7 pipeline email slugs missing from seed → email-loader returned html:"" → SendGrid 400; 7 templates added, loader now throws on missing slug |
| brand-scorer-cwd-undefined.md | ✅ Fixed | cwd never passed to adapter in brand-scorer — all brand scoring crashes; model name also wrong |
| keyword-researcher-max-turns.md | ✅ Fixed | maxTurnsPerRun defaults to 3 from content worker factory — not enough for large keyword JSON output; set to 8 |
Session: 2026-05-06
| channel-action-suggester-exit-code-1.md | ✅ Fixed | Re-investigated — prior fix (maxStalledCount/maxTurnsPerRun) was incomplete; real cause: concurrent jobs share cwd+pidFile, killing each other via taskkill; fixed concurrency:3→1 |
| website-crawler + backlink-outreach-writer .agent.pid race | ✅ Fixed | Same root cause as channel-action-suggester — concurrency: 3 + shared cwd per tenant; fixed by scoping cwd to tenantId/AGENT_ROLE/runId (Pattern B), preserving parallelism |
| BullMQ lock expiry — “Missing key” on moveToFinished | ✅ Fixed | BullMQ default lockRenewTime = lockDuration/2 gives only one renewal window; a single missed Redis SET causes lock expiry mid-job; fixed by adding lockRenewTime: 60_000 to all 23 workers |
| knowledgebase-content-junction.md | ✅ Fixed | Knowledge base blank — content/ was a plain empty dir instead of a Windows junction to docs/; recreated junction 2026-05-06 |
E2E Run Logs
Full pipeline run logs with all issues observed per session.
| File | Date | Issues |
|---|---|---|
| runs/1.md | 2026-05-06 | 11 issues: activity planner JSON/validation, website-crawler + outreach-writer concurrency races, BullMQ lock expiry, RAG 404, keyword-researcher invalid JSON, 8 missing email templates, taskkill log noise |