DGC v0.40.0 is out
Navigate
Install DGC
DGC v0.40.0Edit on GitHub ↗
Providers & models/Reconnecting

what DGC does when a model request fails, is refused as busy, or is cut off

Reconnecting

#

Local servers restart, laptops change networks, hosted APIs get busy. When a model request fails in a way that is worth another try, DGC tries again, and says in one line of the conversation what went wrong and whether trying again worked.

What DGC tries again

#
  • The connection failed: refused, a name that does not resolve, TLS, a proxy, a reset, or a timeout while connecting.
  • The server is busy or failed: 429 and overloaded answers, and 5xx errors. A Retry-After the server sends is respected, up to 10 seconds.

These are sent again up to three more times, with a short backoff between tries.

  • The answer was cut off: the stream ended before the provider's end-of-answer event. DGC keeps what already arrived and asks the model to continue exactly where it stopped, after a backoff that starts at 0.25 seconds and doubles up to 8 seconds, at most eight times in a turn. That request is marked in the transcript so it is never shown as something you typed.
  • The model went quiet: the stall watcher keeps its own wording, No response from the model.

A wrong key, a model the server does not have, or another answer that will not change on a second try is not retried. The error says what failed and what to check.

In the editor

#

A muted line inside the turn follows each run of tries and changes in place:

  • Reconnecting 1/3 · connection refused by 127.0.0.1:11434
  • Server is busy, retrying 2/3 or Server error, retrying 1/3
  • then Reconnected after 1 retry, Recovered after 2 retries, Reconnected · continued from the partial answer, Gave up after 3 retries or Stopped while reconnecting.

Click the line for the details: the cause, the model and API, the endpoint, the HTTP status, each attempt and how long DGC waited before it, the transport's own message, and a hint. Copy details copies them. While DGC waits, the activity row says Waiting to reconnect, Server is busy or Server error, with the host, the backoff and the try count. A line from a sub-agent starts with Sub-agent, and one from a subscription engine with the engine's name.

If DGC gives up, the error row leads with what failed, for example Could not reach the model · connection refused, shows the hint underneath, and keeps the full message behind its chevron.

When the extension restarts DGC's own backend, the activity row says Restarting the DGC backend, so it is never confused with a model reconnect.

In the terminal

#

The same run is one collapsible block: ↻ ▸ Reconnecting 2/3 · connection refused by …. Click it, or use /expand (/expandall opens every one), to read the details. dgc -p and the classic prompt print one line per try, such as ↻ HTTP 503 from 127.0.0.1:8080 — retrying (1/3) in 0.5s, and one when it works.

Privacy

#

Causes, endpoints and details never carry credentials: DGC removes a user:password@ part, the query string and the fragment from every URL it shows or saves, and redacts known secret values.

Documentation