maxLength not respected by schema

Hey everyone,
Im using a finetuned endpoint of gemin 2.5 flash lite and im facing an issue,
In my prompt i ask it to do some thinking to get a better result.
Now i have kepty a limit on the max char in the thinking steps which the model should give as 600 in the response schema

here is my schema:

{

"type": "OBJECT",

"properties": {

    "thinking_steps": {

        "type": "STRING",

        "description": "All thinking steps",

        "maxLength": 600

    },

    "company_name": {

        "type": "STRING",

        "description": "Full company name with suffix"

    },

    "branch_address": {

        "type": "STRING",

        "description": "Complete branch address with pincode"

    },

    "branch_gst": {

        "type": "STRING",

        "description": "Sender's PAN number (15 characters)"

    },

    "code": {

        "type": "STRING",

        "description": " location code"

    },

    "city": {

        "type": "STRING",

        "description": "City shown"

    },

    "state": {

        "type": "STRING",

        "description": "State shown"

},

"required": \[

    "thinking_steps",

    "company_name",

    "branch_address",

    "branch_gst",

    "code",

    "city",

    "state"

\]

}

As you see there is a maxLength as 600 for the thinking steps, but when i see the response i see this:
results 3 (tuned model): {
*“Modified by moderator”*The CONSIGNOR/Ship-To is VST Tillers Tractors LTD M/s VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Tillers Tractors LTD Mis VST Till…..

This doesnt follow the 600 limit mentioned in the schema and i dont know what else to do?

Could someone please guide me on this? Would be a huge help since my responses get stuck like this taking too much time and are incomplete resulting in errors and timeout issues.

Also the response has repeating words as you see which is also an issue.
Thanks

Hi @Aaryan_B, welcome back!

As you are using gemini-2.5-flash-lite, you can try removing thinking steps (which also removes maxLength) in schema since you have a fine-tuned model.

Also, LLMs can’t count characters; they operate on tokens.

Thank you!

Hey Srikantha,

Thanks for the response , on this page:

https://docs.cloud.google.com/vertex-ai/generative-ai/docs/reference/rest/v1/Schema#:~:text=string%20(int64%20format)-,Optional.,pattern%20string

I see the param maxLength which can be added to the schema, and even after fine-tuning the 2.5 flash lite model I feel that having the thinking steps in the response improves the accuracy for me

Is maxLength param outdated/not used anymore?

Would really like to just know if this parameter is followed by gemini or not, if not then I can find alternatives to improve accuracy maybe fine-tune further on more examples and remove thinking steps as you say, would be nice if maxLength would work tbh :slight_smile:

Thanks & Regards,

It seems maxLength is not a strictly enforced hard constraint at the inference engine level. Maybe you can try 1) Lower the Temperature: Set your temperature to a lower value (e.g., 0.1 or 0.2). Low temperature reduces the likelihood of the model getting “stuck” in a high-probability repetition loop. and 2) Frequency Penalty: If the API supports it, increase the frequency_penalty to discourage repeating the same words. Or you can try Optimize the Schema and System Instructions, Since maxLength is being ignored, you need to use the System Instruction to enforce the limit via the model’s training.

1 Like

Hey Jun_Xue

Thanks a ton for the explanation and recommendations, I tried increasing the temp to 0.1 from 0 and it’s working!!!

I’m experimenting a bit with the frequency penalty also. Should do the trick.

Thanks again !

1 Like