git-annex-shell p2pstdio hides error messages that were transported over ssh to display to the user before. For example, diskreserve problems or IO errors. --Joey

git-annex discards stderr from the command because old versions of git-annex-shell don't support the command and error out.

Simply letting stderr through seems like the best solution though, if a way can be found to do it. Otherwise, all errors would have to be trapped (easy), and all stderr output also trapped (hard!), to be sent over the protocol using ERROR. And, there'd be a problem with sending messages atomically; if a message is being sent and an exception is thrown, that message needs to somehow be ended before an ERROR message can be sent.

Hmm, it negotiates the protocol version after opening the connection. Any error at that point would make it not use the p2p protocol, so can be excluded. Then, after version negotiation is complete, it could start displaying stderr.

fixed --Joey