---
title: "Tools troubleshooting: catalog, calls, recovery"
description: "Diagnose and resolve Duale AI Tools issues including catalog status, blocked or denied calls, temporary pauses, unknown outcomes, and Connection recovery."
lang: en
status: public-preview
lastUpdated: 2026-11-05
url: https://dev.duale.ai/en/docs/tools/troubleshooting
---

## AI-generated summary

This page covers symptom diagnosis, Tool pause recovery, unknown outcome handling, Connection recovery, and support escalation for Tools troubleshooting.

- Symptom-to-check mapping for catalog and call states.
- Tool pause behavior and recovery testing.
- Unknown outcome reconciliation and idempotency guidance.
- Connection recovery without recreation.
- Support escalation details and required information.

Summaries were generated by AI.

---

Start from what the Dashboard shows under **Tools**. The Dashboard does not show why a catalog check failed, so each
branch below checks what you control: the endpoint, the remote credential, the call policy, and the assignment.
[Operate Tools](https://dev.duale.ai/en/docs/tools/operations.md) defines every state and outcome named here. For an SDK Tool that your own
process serves, use the [Tool Host section of SDK troubleshooting](https://dev.duale.ai/en/docs/sdk/troubleshooting.md#tool-host) instead.

## Find the symptom

| Symptom                                                                                    | First check                                                                                                  | Safe next action                                                                                                                                                                                                                                                                                        |
| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Catalog status shows **Unavailable**                                                       | Whether the Dashboard read failed                                                                            | Retry the read; this state says nothing about the remote server                                                                                                                                                                                                                                         |
| **Not observed**                                                                           | Endpoint format, remote availability, and credential                                                         | Correct the Connection, then [let the next check recover it](#recover-without-recreating-the-connection)                                                                                                                                                                                                |
| **Expired**                                                                                | Last successful check time, remote availability, and access                                                  | Restore the server or the credential; checks continue while the Connection is enabled                                                                                                                                                                                                                   |
| **No Tools reported**                                                                      | Whether the remote account can list Tools                                                                    | Grant only the list access needed, then wait for a successful check                                                                                                                                                                                                                                     |
| A Tool is incompatible                                                                     | The reason shown in **Catalog**                                                                              | A schema reason needs a change on the server; a reserved argument name needs that argument [renamed on the server](https://dev.duale.ai/en/docs/tools/limits.md#reserved-argument-names); a revision reason needs a server that negotiates a [supported revision](https://dev.duale.ai/en/docs/tools/reference.md#confirm-mcp-server-compatibility) |
| A Tool the server lists is not offered                                                     | Catalog freshness, compatibility, call policy, and assignment                                                | Fix the first of these that does not allow the Tool                                                                                                                                                                                                                                                     |
| Calls are **Blocked** or **Denied**                                                        | Whether the Connection is enabled, its call policy, and the Agent Identity assignment                        | Change only the setting that must allow the call. After you disable a Connection, its Tools can stay offered for a short time, and calls to them end as **Blocked**; calls to a deleted Connection end as **Failed**                                                                                    |
| A Tool Call reports that the Tool is **temporarily paused**                                | Recent technical failures of that Tool                                                                       | [Wait, then test once](#a-tool-is-temporarily-paused)                                                                                                                                                                                                                                                   |
| **Outcome unknown**                                                                        | The destination system's own record                                                                          | [Reconcile before any repeat](#an-outcome-is-unknown)                                                                                                                                                                                                                                                   |
| The answer says that a safety check blocked a step, and the server returned a result       | Whether that Tool Result tells the model what to do, for example to drop its Task or reveal its instructions | Change the server so its results return data, not instructions to the model. If the result is benign, check whether your model provider filters its subject. A result that passes on content you do not control can be hidden the same way, which protects the Task                                     |
| The answer says that a safety check blocked a step, and the server never received the call | Whether the Task's request names the recipient, destination, or change that the call makes                   | Name them in the request, then continue the Task. Duale AI does not send a call that a safety check blocked                                                                                                                                                                                             |
| Tasks of one Agent Identity stop progressing after a new assignment                        | Whether the Agent Identity's Tools grew past its bound                                                       | [Remove an assignment](https://dev.duale.ai/en/docs/tools/limits.md#how-many-tools-one-agent-identity-can-hold)                                                                                                                                                                                                               |
| The confirmed success rate is blank                                                        | How many succeeded or failed calls the selected period holds                                                 | Select a longer period, or wait for more calls                                                                                                                                                                                                                                                          |

## A Tool is temporarily paused

Duale AI paused calls to that Tool on that Connection after repeated technical failures, and did not send this call
to the server. [Understand the MCP call contract](https://dev.duale.ai/en/docs/tools/reference.md#understand-the-mcp-call-contract) states
the pause rule and its length. Catalog checks and other Tools on the Connection continue during the pause.

Wait until the pause ends, then test the Tool once with a low-risk Task. Do not send repeated Tasks to force recovery.

**Check.** The test call ends as **Succeeded** in the Task view or in **Analytics**. If it pauses again, check the
server's own logs for the failing requests before you test again.

## An outcome is unknown

Duale AI cannot prove the call's result, and it cannot rule out that the server received the call. The remote
operation can have run, or not.

1. Read the destination system's own record of the operation.
2. If the operation happened, record it and continue from that state.
3. If it did not happen, repeat it only when a repeat is safe.

Make state-changing remote operations idempotent so that a repeat cannot double an effect. [Secure
integration](https://dev.duale.ai/en/docs/security/secure-integration.md#control-duplicate-attempts-and-uncertain-outcomes) gives the
procedure and the identifiers to keep.

**Check.** The destination system shows the operation exactly once, or not at all. Stop if you cannot read that record;
do not repeat the operation.

## Recover without recreating the Connection

When a server is down, Duale AI keeps checking until you disable or delete the Connection. Correct the endpoint or the
remote credential: saving the change starts a new check at once. After you fix the server itself, let the next
scheduled check refresh the catalog. Deleting and recreating the Connection does not speed recovery, and you must
assign the new Connection again.

**Check.** The catalog shows **Active** with a recent last successful check.

## Ask for support

If the endpoint and credential appear correct and the state does not recover, email [technical
support](mailto:contact+support@mail.duale.ai). Include the Connection ID, Connection name, current status, approximate
time of the problem, and the last successful check time if the Dashboard shows one. Never send the bearer token, API
key, or unrestricted logs by email.

## Related content

- [Operate Tools: catalog states and call outcomes](https://dev.duale.ai/en/docs/tools/operations.md)
- [SDK troubleshooting: symptoms, causes, and fixes](https://dev.duale.ai/en/docs/sdk/troubleshooting.md)
- [Procurement: every supplier, invoice and bid checked](https://dev.duale.ai/en/use-cases/procurement.md)
- [Customer service: calls reviewed, trends traced](https://dev.duale.ai/en/use-cases/customer-service.md)
- [Image Support: route requirements and budgets](https://dev.duale.ai/en/docs/model-routing/images.md)
- [AI that takes on real work, with and for your people](https://dev.duale.ai/index.md)

---

## Sitemap

See the full [Markdown sitemap](https://dev.duale.ai/sitemap.md) for all pages.
