# No Caching with model Responses

**URL:** <https://community.openai.com/t/no-caching-with-model-responses/1338627>\
**Category:** API\
**Created:** [August 8, 2025, 2:14pm UTC](https://community.openai.com/t/no-caching-with-model-responses/1338627 "2025-08-08T14:14:58Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![cfedele76](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/cfedele76/32/451429_2.png) [@cfedele76](https://community.openai.com/u/cfedele76)\
**Post date:** [August 8, 2025, 2:14pm UTC](https://community.openai.com/t/no-caching-with-model-responses/1338627/1 "2025-08-08T14:14:58Z")

</div>

Hi all, I recently moved my script from Chat Completions (with GPT-4o) to Responses calls (with GPT-4.1 and now GPT-5).

With Chat Completions, prompt caching worked perfectly - with my code noting also the input cached tokens every call.

I used both system and user messages - the first one being a 14k token fixed part that was cached constantly.

When I moved to Responses, I included all the system instructions (the fixed string of about 14k tokens) into _instructions_ parameter, leaving the conversation between user and assistant into _input_ (I manage the conversation state manually).

I’m using a fixed _prompt\_cache\_key_ parameter for this script.

I pass always the same _json\_schema_ for the output.

Session\_id (for _Metadata_ logging) changes from chat to chat, but it’s fixed into a single chat.

Example of payload of my response call:

```auto
payload = {
    "model": GPT_MODEL,
    "reasoning": {"effort": GPT_REASONING_EFFORT},
    "instructions": instructions,
    "input": messages,
    "metadata": {
        "session_id": session_id
    },
    "store": True,
    "prompt_cache_key": prompt_cache_key,
    "text": {
        "format": {
            "type": "json_schema",
            "name": schema_name,
            "strict": True,
            "schema": schema
        }
    }
}

```

With this setup I cannot manage to push into the prompt cache server any input token, when I know perfectly that the instructions parameter Is long enough to trigger the cache, being Always the same.

I verified it both from _cached\_tokens = 0_ and Dashboard Usage statistics- only Input and Output tokens used…

Can someone give me some advice to correct this behavior?

Thank you!

C

---

<div class="post-metadata">

**Author:** ![aprendendo.next](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/aprendendo.next/32/721758_2.png) [@aprendendo.next](https://community.openai.com/u/aprendendo.next)\
**Post date:** [August 8, 2025, 10:17pm UTC](https://community.openai.com/t/no-caching-with-model-responses/1338627/2 "2025-08-08T22:17:22Z")

</div>

Try using a system role instead of instructions.

Instructions is [short lived](https://platform.openai.com/docs/guides/text#message-roles-and-instruction-following) (is only valid for the single request) and doesn’t persist in the conversation with previous\_response\_id.

> Note that the `instructions` parameter only applies to the current response generation request. If you are [managing conversation state](https://platform.openai.com/docs/guides/conversation-state) with the `previous_response_id` parameter, the `instructions` used on previous turns will not be present in the context.

---

<div class="post-metadata">

**Author:** ![cfedele76](https://sea2.discourse-cdn.com/openai1/user_avatar/community.openai.com/cfedele76/32/451429_2.png) [@cfedele76](https://community.openai.com/u/cfedele76)\
**Post date:** [August 15, 2025, 4:53am UTC](https://community.openai.com/t/no-caching-with-model-responses/1338627/3 "2025-08-15T04:53:11Z")

</div>

Thank you for the suggestion, it solved my problem!

Bye

C
