If you are doing GET requests on this resource, and at some points there is no data available and others there is, I don't think 202 or 204 is right.
202 really means that the request has been received and may be processed successfully later, and 204 can be interpreted as 'the request was successful but there's no response bodyordon't change the UI state` if you're building more of a hypertext-style application.
In your description, it sounds more like you're doing a GET request to retrieve the current state, but it's not always available. It's hard to know based on your question why that might be the case, but to me it sounds like you don't want to communicate the state of the resource is actually empty, but more-so that technical issues prevent you from returning the true state back to the user.
It also sounds like there was nothing wrong with the actual request, so this makes 4xx responses inappropriate.
This to me makes me feel that a more appropriate response is 503 or 502. In either case it suggests that the service is temporarily incapable of returning a response, but in either case it might tell a client that it could try again later to see if things improved. 503 in particular has a Retry-After header, indicating to the client that it should try again after a specified amount of time.