@@ -177,21 +177,21 @@ func identify(pm *packagemanager.PackageManager, port *discovery.Port) ([]*rpc.B
177177// List returns a list of boards found by the loaded discoveries. 
178178// In case of errors partial results from discoveries that didn't fail 
179179// are returned. 
180- func  List (req  * rpc.BoardListRequest ) (r  []* rpc.DetectedPort , e  error ) {
180+ func  List (req  * rpc.BoardListRequest ) (r  []* rpc.DetectedPort , discoveryStartErrors  [] error ,  e  error ) {
181181	pm  :=  commands .GetPackageManager (req .GetInstance ().Id )
182182	if  pm  ==  nil  {
183- 		return  nil , & arduino.InvalidInstanceError {}
183+ 		return  nil , nil ,  & arduino.InvalidInstanceError {}
184184	}
185185
186186	dm  :=  pm .DiscoveryManager ()
187- 	dm .Start ()
187+ 	discoveryStartErrors   =   dm .Start ()
188188	time .Sleep (time .Duration (req .GetTimeout ()) *  time .Millisecond )
189189
190190	retVal  :=  []* rpc.DetectedPort {}
191191	for  _ , port  :=  range  dm .List () {
192192		boards , err  :=  identify (pm , port )
193193		if  err  !=  nil  {
194- 			return  nil , err 
194+ 			return  nil , discoveryStartErrors ,  err 
195195		}
196196
197197		// boards slice can be empty at this point if neither the cores nor the 
@@ -202,7 +202,7 @@ func List(req *rpc.BoardListRequest) (r []*rpc.DetectedPort, e error) {
202202		}
203203		retVal  =  append (retVal , b )
204204	}
205- 	return  retVal , nil 
205+ 	return  retVal , discoveryStartErrors ,  nil 
206206}
207207
208208// Watch returns a channel that receives boards connection and disconnection events. 
0 commit comments