TorCtl re-uses iterables, even though they only yield their items once
When TorCtl calls filter(), it often re-uses the iterable multiple times. But python iterables only yield each item once. To fix this, we need to turn iterables we want to re-use into a list, using list(filter()).
This might just be why a lot of nodes remain unmeasured, or measurement is unreliable. In our test network, it seems to have caused only 5-7/15 nodes to be measured.
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information