Federated server stops sending requests to one subgraph

We have a single subgraph that stops receiving requests from the federated server. From the client end, the request times out. From the server end, no request is seen in the logs. In this state, we can successfully connect directly to the subgraph, and all other subgraphs are available through the federated server. If we restart the federated server, it will work again for a time, but eventually falls back into this state.

My intuition tells me that there is some kind of error on the subgraph that makes the federated server decide that the subgraph is bad. Is this something that it does? Is there another place I should be looking?

Here are the dependencies from the package.json of our federated server:

  "dependencies": {
    "@apollo/gateway": "^0.50.1",
    "apollo-server-env": "^4.2.1",
    "apollo-server-express": "^3.6.7",
    "boolean": "^3.2.0",
    "client-oauth2": "^4.3.3",
    "compression": "^1.7.4",
    "config": "^3.3.7",
    "dotenv": "^16.0.0",
    "express": "^4.17.2",
    "form-data": "^4.0.0",
    "graphql": "^16.3.0",
    "helmet": "^5.0.2",
    "js-yaml": "^4.1.0",
    "jwt-decode": "3.1.2",
    "lodash": "^4.17.21",
    "morgan": "^1.10.0",
    "uuid": "^8.3.2",
    "winston": "^3.6.0"

The subgraph is in java. Here are the graphql libraries from our pom.xml