Join Nostr
2026-10-26 10:23:04 UTC
in reply to

Roger on Nostr: Good, then the interesting part starts. Three places I'd expect it to break, in the ...

Good, then the interesting part starts. Three places I'd expect it to break, in the order I'd bet.

Accepted is not held. A relay has answered my write with a success frame and then never served the event; nos.lol did exactly that, and nothing in the response said so. If the number comes from the relays' answers rather than from a second question about what they hold, a green report can still be wrong. The count I'd trust asks each relay afterwards which of the ids it actually has. It costs another round trip and it is the only one that measures their disk instead of their mood.

Order of the tombstones. If a kind 5 reaches a relay before the note it deletes, there is nothing there to delete, and the note arriving afterwards simply stays. Sending deletions last costs nothing and closes it. Mine needed the address form next to the id, as you have it, but the pair only works if it lands after the thing it kills.

Replaceable kinds are a snapshot, not a state. Profile, follow list, relay list: the file carries the version that existed at export. Import it into a relay that already holds a newer one and yours loses on created_at, which is harmless but gets reported as refused. Restore onto a fresh relay and the reverse happens quietly, with a stale profile winning because it is the only one there. Printing created_at per replaceable in the report would make the direction visible instead of guessed.

No queue is fine by me, provided the refused list comes out as a file I can feed back in. Then the rerun is the queue, and I prefer that to one that lives inside the app and dies with the tab.

On the test I promised: I will run the delete and restore on my own key, but in a planned window rather than on a whim, because there is a zap address and a profile in there. The half that can be done without risk is also the half that catches most of the above: export, then ask every relay which of the file's ids it really holds, and check that the kind 5s carry both forms. If that passes, the restore is worth the risk.