Problem summary
When using gpt-5-chat-latest with system instructions containing placeholders ({{user_name}}, {{repository_name}}, etc.), these placeholders remain unrendered in the first response.
The model behaves as if it performs a deferred (lazy) variable hydration, whereas gpt-4.1 and gpt-5 resolve placeholders immediately during the first generation.
Observed behavior
Minimal request:
{ "model": "gpt-5-chat-latest",
"input": [
{"role": "system", "content": "Hi {{user_name}} working on your repository. variable; - {{user_name}} = "Alice"},
{"role": "user", "content": "Hi"} ]
}
Response (first call):
Hi {{user_name}} great to see you working on {{repository_name}}...
Response (second identical call):
Hi Alice great to see you working on Project for applying GenAI best practices...
Expected behavior
For two identical requests, the output should remain consistent.
Placeholders should either always remain literal (no interpolation at all) or always be resolved immediately.
The API documentation does not mention any deferred placeholder resolution mechanism.
Functional impact
-
Loss of identity and tone in the first conversational turn.
-
Inconsistencies in ephemeral agent architectures (MCP,
file_search, multi-model orchestration). -
Potential non-deterministic behavior in systems relying on
v1/responses.
Proposed fix or clarification
-
Explicitly document the deferred hydration behavior currently observed.
-
Optionally provide a parameter such as:
"resolve_placeholders": "eager"
or
"lazy_injection": false
Affected version
-
Model:
gpt-5-chat-latest -
Endpoint:
v1/responses -
Date: November 2025
-
Reproduced on: REST API, Playground, MCP server, and
file_searchtool