# Fix tool problems

A tool endpoint will not sync, or a tool call waits or fails.

Tools are functions on your own server that the agent can call. Most fixes
happen there, so this page names the cause and points your developer at the
detail.

| Symptom or message | Cause | Fix |
| --- | --- | --- |
| A **Needs fixing** item on Home says a tool endpoint is failing | The last sync failed | Open **Agent → Tools**. The row reads "Sync failed:" with the reason |
| Sync failed: The endpoint refused the signature. Open the route once to reconnect it with that deployment's MEDIAN_KEY. | The server's `MEDIAN_KEY` is not the key that connected the route, or that key was revoked | Reconnect the route with the current key |
| Sync failed: The endpoint did not answer. Check the URL and that your server is up. | Server down or wrong URL | Fix the URL or start the server, then **Sync** |
| Sync failed: The endpoint did not answer with JSON. Is the URL pointing at the route exported by median()? | The URL is not the tools route | Point it at the route |
| http://localhost:3000 is this deployment's own machine, not yours. | A local URL | Put a tunnel in front of your dev server and use its URL |
| Create a Median key in Settings under API before connecting tools. | No Median key exists | Create one on **Settings → API** |
| A tool call is waiting and nothing happens | A `high` risk call waits for a teammate. A `reviewed` call waits for the automated reviewer, which can pass it to a teammate. Unanswered approvals expire after 24 hours | Decide it on Home or in the thread. See [Approve tool calls and run tools](/articles/approve-tool-calls-and-run-tools) |
| The agent says a tool is not answering | Your endpoint answered with an error or timed out. The agent is not shown your error text | Find the call in [Logs](/articles/search-your-logs) and read its error |

## For your developer

| Topic | Where |
| --- | --- |
| Every error from connecting, syncing and calling an endpoint | [Tool errors](https://docs.median.sh/agent/troubleshooting) |
| Risk levels and approvals | [Risk levels](https://docs.median.sh/agent/tools#risk-levels) |
| What a call sends and expects back | [How tool calls run](https://docs.median.sh/agent/running-tools) |
