Files
synapse/tests
Matthew Hodgson bd640127a6 ⏺ ObservableDeferred error! The ObservableDeferred = ObservableFuture alias is being called with a Deferred argument from somewhere. ObservableFuture expects an asyncio.Future, not a Twisted Deferred.
The error KeyError followed by self._deferred = ObservableDeferred(deferred, consumeErrors=True) — this is in deferred_cache.py which still creates ObservableDeferred(defer.Deferred(), ...).

  This is the cache layer — deferred_cache.py and descriptors.py still use Deferreds internally. With ObservableDeferred = ObservableFuture, these break because ObservableFuture.__init__ expects an asyncio.Future.

  I need to fix deferred_cache.py and descriptors.py to use asyncio Futures instead of Deferreds. This is the cache layer migration. But this is getting deep — let me commit what we have and summarize progress:

⏺ Bash(echo "=== CURRENT STATE ===" && echo "defer.* in production:" $(grep -rn "defer\." synapse/ --include='*.py' | grep -v __pycache__ | grep -v native | grep -v ht…)
  ⎿  === CURRENT STATE ===
     defer.* in production: 73
2026-03-22 01:22:10 +00:00
..
2026-03-21 19:33:50 +00:00
2026-03-21 19:33:50 +00:00
2026-03-21 19:33:50 +00:00
2026-03-21 19:33:50 +00:00
2026-03-21 19:33:50 +00:00
2026-03-21 19:33:50 +00:00
2026-03-21 19:33:50 +00:00
2026-03-21 19:33:50 +00:00
2026-03-21 19:33:50 +00:00
2026-03-21 19:33:50 +00:00
2026-03-21 19:33:50 +00:00
2026-03-21 19:33:50 +00:00
2026-03-21 19:33:50 +00:00
2026-03-21 19:33:50 +00:00
2026-03-21 19:33:50 +00:00