# AssertionError: assert 'processing item' in ''
  # caplog.text is empty

- **ID:** `python/pytest-caplog-propagation-disabled`
- **Domain:** python
- **Category:** config_error
- **Verification:** ai_generated
- **Fix Rate:** 80%

## Root Cause

The application logger has propagate=False set (often to avoid duplicate handlers), so records never reach the root logger that caplog attaches its handler to. caplog captures nothing.

## Version Compatibility

| Version | Status | Introduced | Deprecated |
|---------|--------|------------|------------|
| 7.x | active | — | — |
| 8.x | active | — | — |

## Workarounds

1. **** (92% success)
   ```
   def test_logs(caplog):
    logger = logging.getLogger('myapp')
    logger.propagate = True
    with caplog.at_level(logging.INFO, logger='myapp'):
        run()
    assert 'processing item' in caplog.text
   ```
2. **** (88% success)
   ```
   def test_logs(caplog):
    logger = logging.getLogger('myapp')
    logger.addHandler(caplog.handler)
    try:
        run()
    finally:
        logger.removeHandler(caplog.handler)
    assert any('processing item' in r.message for r in caplog.records)
   ```

## Dead Ends

- **** — Level is not the problem; propagation is disabled so no records reach caplog regardless of level. (80% fail)
- **** — Logging handlers may not write to stderr, and the format is not the log message alone. (70% fail)
