A catalog of AI models in Microsoft Foundry that you can discover, compare, and deploy using Azure’s built‑in tools for evaluation, fine‑tuning, and inference
Hello Birud Vora
gpt-5.6-luna cannot be used on the classic Assistants-style threads/runs path at all, and no combination of temperature/top_p values will change that.
Here's the full picture:
The model catalog entry for gpt-5.6-luna lists its supported API surfaces as Chat Completions and Responses only. Like the rest of the GPT-5.x reasoning family, it rejects sampling parameters (temperature, top_p) outright the presence of the parameter is the error, regardless of its value. When Microsoft says GPT-5.6 is available in Foundry Agent Service, that means the new, Responses-API-based Agent Service (conversations + responses), not the classic Assistants-compatible execution path you're calling (/threads/<id>/runs with api-version=v1).
In the Assistants API contract, temperature and top_p are always-present fields on the run object with service-side defaults of 1, and null means use the default, not omit. The service materializes them on every run and forwards them to the model, which rejects them. The only place this could be fixed is server-side (the runs pipeline stripping sampling params for reasoning models), and that fix is very unlikely to come, because:
- The Azure OpenAI Assistants API was retired on August 26, 2026 (retirement notice discussion).
- The Foundry Agent Service classic the threads/runs surface on
services.ai.azure.com/api/projects/...that you're using is built on the Assistants API, is deprecated, and retires March 31, 2027 (Q&A on the classic SDK's fate).
The way forward:
- Migrate to the new Foundry Agent Service (Responses-based). The mapping is: assistants → agent versions, threads → conversations, runs → responses. Microsoft's migration tool at
aka.ms/agent/migrate/toolgives you a starting point, though run-state orchestration logic needs rewriting against response states. - If you don't need agentic features (file search, code interpreter, managed threads), call the Responses API directly on the project endpoint (
/openai/v1/responses) gpt-5.6-luna works there, and reasoning models on that surface simply don't accept sampling params, so the problem disappears. - Stopgap: if migration takes time, point the classic assistant at a non-reasoning deployment (gpt-4.1/gpt-4o family), which still accepts
temperature/top_p, and hold gpt-5.6-luna until you're on the new surface.gpt-5.6-luna cannot be used on the classic Assistants-style threads/runs path at all, and no combination oftemperature/top_pvalues will change that.