Troubleshooting Request Timeouts and Responses#
A ready server can still return an unexpected response or exceed a client’s timeout. Check the request, response, and server logs before changing deployment settings. Refer to the Release Notes for affected models and validated workarounds; the checks below do not resolve every backend defect.
Requests Exceed the Client Timeout#
First determine whether the server is still processing the request or has failed.
Check readiness at /v1/health/ready and inspect the container logs for errors or
worker exits. Readiness alone does not prove that a particular request is making
progress. Compare a short request with the same model, profile, and endpoint.
For a healthy deployment that is generating slowly:
Bound output with
max_tokensfor/v1/completionsand/v1/chat/completions, ormax_output_tokensfor/v1/responses. These are output limits, not time limits.Set the client request timeout to accommodate the expected generation time. Also check any proxy timeout between the client and the service.
Use a supported GPU/profile with higher throughput if the application needs both long output and low latency. Refer to the Support Matrix for NIMs.
Empty-input or short-prompt failures can have a different cause from slow decode. If a release note says completion with a longer timeout is unverified, increasing the timeout is a diagnostic experiment, not a validated workaround. Retain the request parameters and logs when reporting the failure.
Completion Stop Strings Are Not Honored#
For /v1/completions, inspect the returned text and finish_reason, including
the final event for streamed output. A response that reaches the output limit
with finish_reason=length has not established that the requested stop string
was honored. Check that the generated output actually reached the requested
sequence before attributing the result to a stop-string failure.
Set max_tokens to bound output while diagnosing the issue. This limits the
length of a response; it does not fix incorrect stop-string handling. Affected
models, endpoints, profiles, and GPUs differ, so check the specific release-note
entry before switching configurations. Do not assume that a completion failure
also affects chat requests.
A Forced Tool Call Is Missing#
HTTP 200 indicates a successful HTTP response, not that the requested tool call
was produced. For /v1/chat/completions with tool_choice=required or a named
function, verify that choices[].message.tool_calls contains the required call.
For streamed responses, assemble the tool-call deltas before validating the result.
Changing to tool_choice=auto lets the model choose whether to call a tool. It
does not preserve a requirement that every response include a tool call. If the
application requires forced tool calling, handle a missing call as an invalid
result and check the Release Notes for a validated workaround.