Skip to content

reasoning_effort='ultra' causes opaque 400 on every turn (no validation, burns all retry attempts) #428

Description

@andrei-hasna

Summary

model_reasoning_effort = "ultra" in ~/.codewith/config.toml (with model gpt-5.6-sol via the hasna gateway) is rejected by the API with a 400 on every turn:

[ReasoningEffortParam] [reasoning.effort] [invalid_enum_value] Invalid value: 'ultra'. Supported values are: 'none','minimal','low','medium','high','xhigh','max'.

Impact

Discovered via @hasnaxyz/factory: a batch of ~10 headless codewith runs each 400'd on turn 1, retried 3x with the identical 400, and parked with zero output — indistinguishable at the surface from 'agent couldn't solve it'. There is no config-load validation and no fast-fail, so an invalid enum silently wastes the entire retry budget on every run.

Expected

Validate model_reasoning_effort against the supported set at config load (or request build) and either (a) map an unsupported value to the nearest valid one with a warning, or (b) fail fast with a clear actionable message naming the supported values — so a bad enum never turns into opaque mid-run 400s that consume retries.

Note

'ultra' is expected to become supported soon; regardless, unknown/unsupported effort values should be handled gracefully rather than producing silent 400 loops. Workaround today: use 'xhigh'.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions