Carol — back to Apps ← Apps

Carolopedia

A friendly guide to Carol, her ecosystem, and the agents who built her.

📖 CarolopediaServicesBuild InitiativesAll activitiesINI-1000456
📋

CAROL-INI-0512-00: Fix shared/claude.py module-level FileHandler crash when run as forge user

Initiative
Open in Initiatives →

📖About

ROOT CAUSE: shared/claude.py line 30 creates a logging.FileHandler("/tmp/carol_claude_concurrency.log") at module import time. This file is owned by caroladmin:caroladmin with mode 644. When Forge droids run as OS user forge (CAROL-INI-485 security boundary), the import of shared/claude.py crashes with PermissionError, producing zero stdout. PO-S1 sees empty output → "Droid output not JSON" → 3 retries all fail instantly → pipeline FAILED.

IMPACT: Every Developer/Forge droid invocation has been dead since the concurrency log file was created. The INI-300 chain has spun through 6+ follow-ons (300-17 to 300-23) all failing identically. Multiple other bypasses (504, 506, 509) also failed for the same reason.

EVIDENCE: worker_outputs rows 1949-1953 all show identical PermissionError traceback. Exec IDs 1492, 1494, 1495, 1497, 1498, 1500 all failed.

IMMEDIATE FIX APPLIED: chmod 666 /tmp/carol_claude_concurrency.log (unblocks pipeline right now).

PERMANENT FIX: Wrap the FileHandler creation in shared/claude.py in a try/except so a permission error degrades gracefully (no log file) instead of crashing the entire module import. This prevents recurrence after reboots or /tmp cleanup.