The circular deferred warning is not as specific and informative as it should be
|Reported by:||radix||Owned by:|
(github, coverage, patch, buildbot, log)
As described by exarkun on http://twistedmatrix.com/trac/ticket/6164#comment:11
The warning message describes the function that is in error, but the function that the warning is *bound* to is the one that invoked Deferred.callback, which is not the code in error.