|  | @@ -93,8 +93,12 @@ class RepositoryServer:  # pragma: no cover
 | 
	
		
			
				|  |  |                              f = getattr(self.repository, method)
 | 
	
		
			
				|  |  |                          res = f(*args)
 | 
	
		
			
				|  |  |                      except BaseException as e:
 | 
	
		
			
				|  |  | -                        logging.exception('Borg %s: exception in RPC call:', __version__)
 | 
	
		
			
				|  |  | -                        logging.error(sysinfo())
 | 
	
		
			
				|  |  | +                        # These exceptions are reconstructed on the client end in RemoteRepository.call_many(),
 | 
	
		
			
				|  |  | +                        # and will be handled just like locally raised exceptions. Suppress the remote traceback
 | 
	
		
			
				|  |  | +                        # for these, except ErrorWithTraceback, which should always display a traceback.
 | 
	
		
			
				|  |  | +                        if not isinstance(e, (Repository.DoesNotExist, Repository.AlreadyExists, PathNotAllowed)):
 | 
	
		
			
				|  |  | +                            logging.exception('Borg %s: exception in RPC call:', __version__)
 | 
	
		
			
				|  |  | +                            logging.error(sysinfo())
 | 
	
		
			
				|  |  |                          exc = "Remote Exception (see remote log for the traceback)"
 | 
	
		
			
				|  |  |                          os.write(stdout_fd, msgpack.packb((1, msgid, e.__class__.__name__, exc)))
 | 
	
		
			
				|  |  |                      else:
 |