From 50da5074e78bc1aaf2d0c0d0c2f867d9bf6f858e Mon Sep 17 00:00:00 2001 From: Diego Romar Date: Tue, 20 Jan 2026 07:14:33 -0300 Subject: [PATCH] [client] change notifyDisconnected call (#5138) On handleJobStream, when handling error codes from receiveJobRequest in the switch-case, notifying disconnected in cases where it isn't a disconnection breaks connection status reporting on mobile peers. This commit changes it so it isn't called on Canceled or Unimplemented status codes. --- shared/management/client/grpc.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/shared/management/client/grpc.go b/shared/management/client/grpc.go index e9dbae892..d54c8f870 100644 --- a/shared/management/client/grpc.go +++ b/shared/management/client/grpc.go @@ -185,10 +185,10 @@ func (c *GrpcClient) handleJobStream( for { jobReq, err := c.receiveJobRequest(ctx, stream, serverPubKey) if err != nil { - c.notifyDisconnected(err) if s, ok := gstatus.FromError(err); ok { switch s.Code() { case codes.PermissionDenied: + c.notifyDisconnected(err) return backoff.Permanent(err) // unrecoverable error, propagate to the upper layer case codes.Canceled: log.Debugf("management connection context has been canceled, this usually indicates shutdown") @@ -198,11 +198,13 @@ func (c *GrpcClient) handleJobStream( "Please update the management service to use this feature.") return nil default: + c.notifyDisconnected(err) log.Warnf("disconnected from the Management service but will retry silently. Reason: %v", err) return err } } else { // non-gRPC error + c.notifyDisconnected(err) log.Warnf("disconnected from the Management service but will retry silently. Reason: %v", err) return err }