When it runs
Autofix only touches request-side 4xx errors, where the provider is telling you the request was wrong:
It deliberately skips
401, 403, 429, and every 5xx. A bad key, a rate limit, or a provider outage isn’t something a rewritten body can fix, so those go straight to fallback.
Renamed models are covered through the provider itself. When a request names a model Manifest hasn’t catalogued but the provider and credentials are unambiguous, Manifest forwards it anyway. The provider answers with its real error, typically a 404 for a model that no longer exists, and that error goes through the normal Autofix path. A patch that corrects the model name serves the request.
How it works
1
The request fails
A provider returns a repairable 4xx. Manifest normalizes the error into a
message, type, and parameter.
2
Manifest asks for a patch
The failed request and the normalized error go to the hosted healing
service, which returns a corrected request body.
3
One retry
Manifest sends the patched request. There is no retry budget: it tries
exactly once.
4
Fallback if it still fails
If the patched request fails too, Manifest reports the outcome and hands
off to your fallback chain as normal.
Turning it on
Autofix is a per-harness toggle, and you meet it at two moments.Nothing to deploy or configure: your install talks to Manifest’s hosted healing service directly.
When you create a harness
The Connect Harness modal shows an Autofix toggle under the name field, pre-set to on. You decide there, and the choice is stored on the harness. This works the same on Cloud and self-hosted.
The Autofix toggle in the Connect Harness modal, pre-set to on.
Harnesses you already have
A harness that existed before Autofix keeps its state: Manifest never flips the toggle for you.On Manifest Cloud, those harnesses are already on. You can switch any of them off on its Settings page.
Enable each one from its Settings page or from the sidebar card.
The dashboard shows a sidebar card while any harness has Autofix off. It opens a modal listing those harnesses with individual toggles, and you can dismiss it for the browser session.

The Autofix toggle on a harness's Settings page.

The modal opened by the sidebar card, one toggle per harness.
Your data
Here is exactly what Autofix sends to the healing service, and when nothing is sent.
Self-hosting is often a privacy choice, so here is exactly what leaves your machine, and when nothing does.The first time you enable Autofix, your install records a one-time consent: enabling it means you agree that failing requests are sent to the hosted healing service, as set out in the terms. Any enable path records it. Your install identifies itself with an anonymous install id, the same id telemetry uses.
When Autofix repairs a request, Manifest sends the failed request, including its message content, plus the provider’s error response to the healing service.
Provider API keys and OAuth tokens are never sent: credentials travel in request headers, which are not part of the payload sent to the healing service. The provider’s error response is scrubbed for secrets before it is sent.
Nothing is sent for requests that succeed. No request data is ever sent while the toggle is off; the only call that can still happen is the boot health check, which carries no request content.
Self-hosted deployments can also switch Autofix off globally, which stops every call to the healing service, including the health check at boot. See Environment variables.
See the privacy policy and the terms.
Guardrails
Autofix is built to stay out of the way when it isn’t working:- One attempt. A patched request is sent once. It never loops.
- Failures degrade quietly. If the healing service errors or times out, your agent gets the original provider error. Autofix never turns a provider’s 400 into a Manifest 500.
- A slow healer stops being asked. After three consecutive transport failures, Manifest stops calling it for 30 seconds so a down service doesn’t add latency to every failing request. One successful call clears the streak.
- Startup never waits. In production, Manifest pings the healing service once at boot, fire-and-forget, and logs a warning if it’s unreachable. It never blocks startup, and it’s skipped entirely when Autofix is disabled globally.
- Fallback still runs. Autofix sits in front of the chain, it doesn’t replace it.
Seeing what it did
Open any request in the dashboard’s request log. Requests that went through Autofix carry a panel showing what changed and whether the retry succeeded. Only a successful patched retry counts as recovered by Autofix.
A repaired request: the failed attempt, the provider's error, and the Autofix panel showing the patch.
Each card links through to the matching filter on the request log.
Environment variables
Self-hosted only. On Manifest Cloud there is no
server to configure: everything Autofix related lives in the dashboard.
You don’t need
AUTOFIX_HEALING_API_KEY. With no key set, the install announces its anonymous install id instead. The full list of variables lives in Environment variables.Related
- LLM Gateway: where Autofix sits in the request flow
- Observability: finding failing requests in the log
- Request logs: reading the original and patched bodies
- Error codes