diff -r 42bc1c70a6b8 -r 43d92d68ac88 mercurial/wireprotov2peer.py --- a/mercurial/wireprotov2peer.py Thu Aug 23 13:50:47 2018 -0700 +++ b/mercurial/wireprotov2peer.py Wed Sep 05 09:04:40 2018 -0700 @@ -27,7 +27,7 @@ msg = _(atom[b'msg']) if b'args' in atom: - msg = msg % atom[b'args'] + msg = msg % tuple(atom[b'args']) chunks.append(msg) @@ -163,8 +163,10 @@ if overall['status'] == 'ok': self._futures[frame.requestid].set_result(decoder(objs)) else: - e = error.RepoError( - formatrichmessage(overall['error']['message'])) + atoms = [{'msg': overall['error']['message']}] + if 'args' in overall['error']: + atoms[0]['args'] = overall['error']['args'] + e = error.RepoError(formatrichmessage(atoms)) self._futures[frame.requestid].set_exception(e) else: self._futures[frame.requestid].set_result(response)