@@ -268,7 +268,7 @@ func getProviderOptions(model Model, providerCfg config.ProviderConfig) fantasy.
268268 switch providerCfg.Type {
269269 case openai.Name, azure.Name:
270270 _, hasReasoningEffort := mergedOptions["reasoning_effort"]
271− if !hasReasoningEffort && model.ModelCfg.ReasoningEffort != "" {
271+ if !hasReasoningEffort && model.ModelCfg.ReasoningEffort != "" && model.CatwalkCfg.CanReason {
272272 mergedOptions["reasoning_effort"] = model.ModelCfg.ReasoningEffort
273273 }
274274 if openai.IsResponsesModel(model.CatwalkCfg.ID) {
@@ -292,7 +292,7 @@ func getProviderOptions(model Model, providerCfg config.ProviderConfig) fantasy.
292292 _, hasThink = mergedOptions["thinking"]
293293 )
294294 switch {
295− case !hasEffort && model.ModelCfg.ReasoningEffort != "":
295+ case !hasEffort && model.ModelCfg.ReasoningEffort != "" && model.CatwalkCfg.CanReason:
296296 mergedOptions["effort"] = model.ModelCfg.ReasoningEffort
297297 case !hasThink && model.ModelCfg.Think:
298298 mergedOptions["thinking"] = map[string]any{"budget_tokens": 2000}
@@ -349,7 +349,7 @@ func getProviderOptions(model Model, providerCfg config.ProviderConfig) fantasy.
349349 extraBody := make(map[string]any)
350350
351351 _, hasReasoningEffort := mergedOptions["reasoning_effort"]
352− if !hasReasoningEffort && model.ModelCfg.ReasoningEffort != "" {
352+ if !hasReasoningEffort && model.ModelCfg.ReasoningEffort != "" && model.CatwalkCfg.CanReason {
353353 switch providerCfg.ID {
354354 case string(catwalk.InferenceProviderIoNet):
355355 extraBody["reasoning"] = map[string]string{"effort": model.ModelCfg.ReasoningEffort}