Endpoint Compatibility Reference in DocsFab
Look up the compatibility checks and verdicts shared by docsfab profile probe --live and docsfab doctor --live.
Read the Endpoint Compatibility Verdict
With --live, the probe sends two streamed requests in the shape DocsFab’s
harness sends: one turn that offers a tool, then one request for a single JSON
object. Both carry stream_options.include_usage and the output limit. They
use the output-limit field and instruction role DocsFab’s provider sends on
that route: max_tokens and a system message under an installed request
policy or on the NVIDIA API Catalog, and otherwise the field and role the
provider picks for the endpoint and profile, such as max_completion_tokens.
After a refused request, the probe sends no further compatibility requests.
The request-policy samples also stop after a client error other than 408 or
429, such as a retired model’s 410, so that case costs one request. profile probe uses the endpointProbe.maxOutputTokens
limit, 4,096 tokens by default. When the request-policy verdict is
reasoning-split-controllable, the requests also carry
chat_template_kwargs.thinking=false, the control a drafted policy installs.
Every probe request crosses the same network boundary as DocsFab’s provider
requests. The probe stays on the configured origin, never follows a redirect,
sends plain HTTP only to loopback, and bounds each response by
compositionExecution.maxResponseBytes. A plain-HTTP localhost endpoint that does not
resolve only to loopback is refused before any request carries the
credential.
docsfab doctor --live runs the same checks against your configured endpoint
before its connectivity turn. It sends the bound composition’s request policy
and your effective output limit, which is the effective-output value doctor
prints.
The report names one of the following verdicts:
compatible: every check passed.incompatible: at least one check failed.inconclusive: no check failed, but at least one could not decide.not-checked: the endpoint’s transport is not OpenAI-compatible chat completions, which the probe speaks.
Each check reports pass, fail, inconclusive, or not-checked, a
finding, and a detail line. A failed or inconclusive check also names a
cause, its owner, and one next action. Owners and causes use the same values
as DocsFab’s run diagnosis, so the owner is one of provider-capacity,
output-limit, contract-shape, model-content, operator-configuration,
or docsfab-defect.
The following table lists each check with its failing findings, cause, and owner.
A reply cut at the output limit before the tool call or the JSON object marks
that check inconclusive with finding cut-by-output-limit. The cut does not
show that the model lacks the capability. The output-limit check fails, and
its next action tells you to raise the limit or select another model.
For example, a retired model answers HTTP 410, and the text output quotes the provider:
The checks that did not run print as not-checked. In --json output, the
same report is the compatibility field, with schemaVersion, kind
(docsfab-endpoint-compatibility), verdict, maxOutputTokens, and
checks. Each check carries id, status, finding, detail, cause,
owner, and nextAction. A refused request adds httpStatus,
providerMessage, and providerMessageTruncated when the body was longer
than endpointProbe.providerMessageMaxChars. DocsFab reads the provider’s
message from the whole response body or in-stream error event. Before it
applies that bound, it replaces with [REDACTED] every run of
endpointProbe.credentialEchoMinChars or more characters copied from the
credential, and every credential-shaped value. A run counts whether the
provider wrote it raw, JSON-escaped, or URL-encoded, and whether or not
invisible characters, spaces, or line breaks split it, so a truncated or
masked echo of the key is removed as well as a whole one. It then removes URLs,
email addresses, control, bidirectional, and zero-width characters, and
account, function, organization, and request identifiers from the quoted
message.
When a check’s detail names a reply’s finish reason, it is one of stop,
length, tool_calls, content_filter, or function_call. Any other value
the provider sends appears as unrecognized, as in
finish_reason=unrecognized, and an absent one as none. DocsFab never copies
the provider’s own string.
docsfab doctor --live blocks readiness on a failed check. It reports
diagnostic endpoint-incompatible, or provider-live-unavailable when the
failure is provider capacity. Its next command is the failed check’s next
action. The readiness record carries the report as endpointCompatibility.
Authoritative Sources
The following sources define the behavior this page describes: