Make 'Already have a(n) 'edge' with id' a warning rather than an error
This should not happen with properly configured Pumps, but it would help in setting them up if errors where graphs on two Pump instances disagree, if a warning rather than an error was issued, and the followup actions done assuming the least populated graph.
Taking an example to be clearer: a Pump I'm setting up does not appear to be reachable by another one. Yet, I can do a bunch of things locally, like following remote users, or have them follow a local user, but this information is not propagated to the remote Pump. When I change some parameters, and try again, I get the error that it "[a]lready ha[s] a(n) 'edge' ...", and doesn't seem to forward the request to the remote Pump.
It would be good if it were just a warning, and the Pump tried to follow up with the steps of creating this edge anyway.
Actually, it seems to be the other way round: the remote server rejects my local server's trying to establish a link:
Remote OAuth error code 400: {"error":"Already have a(n) 'edge' with id 'acct:[email protected]→acct:[email protected]'"}
Also, from the other end, (1realtime.net), it doesn't seem to be possible to Stop following somebody if their Pump is not fully reachable (i.e., in case of a buggy remote Pump).
Maybe a better default would be to try to inform the remote server, but unconditionally remove the edge locally. This might require an additional mechanism to inform the remote server about this removed edge later (e.g., go through the remote unfollowing steps again the next time an event is pushed from the followed user).
That said, it seems following/unfollowing are synchronous actions. Is that right? Is there a reason why they couldn't be asynchronous events, e.g., based on the “X stopped following Y” event upon reception of which Y's server could remove the edge as a side-effect, rather than doing some synchronous removal, and posting that notice with no side effect for human-information purposes only, as seems to be the case at the moment.
This seems to affect all the identi.ca users I followed when identi.ca went live. The ONLY users that come through on my instance are ones I can still follow/unfollow, the rest I get this message.
I'm getting this error when trying to follow an identi.ca user from my identi.ca account......
I guess the follow() operation should be idempotent: regardless of the state of the graph before calling it, there should be an edge between the follower and the followee after it has been called.
As mentioned in the title, it might make sense to issue a warning if that eddge was already there, but I don't think it should be a cause for failure. It also give a chance to unify parts of the local views of two different instances.
Olivier Mehani [email protected] PGP fingerprint: 4435 CF6A 7C8D DD9B E2DE F5F9 F012 A6E2 98C6 6655 Confidentiality cannot be guaranteed on emails sent or received unencrypted.