I am developing a new rest service , lets call serviceA which will internally invoke another rest service ,lets call it serviceB and do some data manipulation and return the response. I am trying to determine what http error status codes returned in below scenarios when client invokes serviceA

serviceB is down
serviceB returns the exception to serviceA because data does not exist as per the request.
serviceA gets the correct response from serviceB , but fails to complete the internal processing and errors out. 

Thanks, any comments are appreciated.
For the client which is calling serviceA , serviceB doesn't exists. serviceB is for an internal mechanism of serviceA. So in my opinion either point 1 or point 3, it should just be 500 internal server error.
For point 2, I think serivceA should catch the serviceB exception for no data and return 204 No content found.
Now, additional points. If you have some logic on your client side when serviceB is down and you must know that, you can return 503 or 504 for point 1.
Error Scenarios in rest service