By Greg Nowak. Updated 17 October 2026.
If your support assistant, document workflow, or client application still depends on OpenAI’s Assistants API, the migration deadline has passed. OpenAI shut it down on 26 August 2026. Its migration guide confirms that the API is no longer available and directs developers to the Responses API.
For a business owner or operations lead, the immediate question is which work customers and staff can complete today. An endpoint change is only part of the repair: conversation history, tool execution, background jobs, and the interface all need to work together.
I would approach this in three stages: restore the most valuable journey, recover the history it needs, then prove the replacement behaves reliably.
Restore one complete customer journey first
Choose the affected workflow with the greatest business impact. That might be answering a support request or processing an uploaded document. Write down what successful completion looks like, including where the result must appear and who handles a failure.
While developers repair it, replace endless loading indicators with an accurate message and a workable alternative, such as a manual support route. Pause failing jobs where repeated attempts could create duplicate work.
Give one person authority to coordinate application changes, operations, testing, and customer communication. For an agency, agree who accepts the repaired workflow on the client side. Separate technical sign-offs can miss a broken handover between systems.
| Old dependency | Replacement approach | Acceptance check |
|---|---|---|
| Assistant configuration | Versioned instructions, tools, and settings in application code | Can the team reproduce the deployed configuration? |
| Thread | Conversation or application-managed history | Can an authorised user continue the correct case? |
| Run and Run Steps | Response and output items, with explicit tool orchestration | Does the task finish, including tool results and failures? |
| Assistant streaming helpers | Responses streaming events | Does the interface leave its loading state on success or failure? |
| Queued jobs holding legacy IDs | Updated payloads and deliberate replay rules | Can old jobs be resolved without repeating completed actions? |
Find dependencies beyond the chat screen
Ask your developer to search the repository for SDK calls, resource IDs, and direct endpoint references. This is a useful first pass:
rg -n 'beta\.(assistants|threads)|assistant_id|thread_id|runs\.(create|retrieve)|submit_tool_outputs|/v1/(assistants|threads)' .Then check deployment settings, database fields, scheduled tasks, queue payloads, and support tools. A repository search will not reveal everything stored outside the codebase.
Record each dependency against a business workflow, an owner, and an acceptance check. Include file attachments and document retrieval: test a known document question, its supporting reference, and access permissions. A plausible answer alone does not prove retrieval works.
What conversation history can you recover?
Start with messages your application already stored. OpenAI’s migration guide explicitly says the old call for retrieving Thread messages no longer works. A Thread ID alone is therefore insufficient to rebuild a transcript.
Check your own database, exports, and authorised logs before promising historical continuity. Distinguish complete transcripts from partial traces. If history is missing, explain that clearly and provide a fresh conversation or manual handover.
Recover selectively. Active cases may need relevant context; closed cases may only need a read-only transcript. Review old instructions and sensitive content before putting them back into model context.
Choose state storage and avoid the next retirement
The migration guide still describes replacing Assistants with reusable Prompts, but OpenAI’s deprecation schedule says reusable prompt objects and v1/prompts are scheduled to shut down on 30 November 2026. Its stated migration direction is to move prompt content into application code.
Keep instructions, tool definitions, output schemas, and model settings under version control. Record the deployed version so a changed answer can be traced to a release. Check the chosen model’s retirement schedule too.
For state, use Conversations when a case needs a persistent identity across sessions or jobs. Chaining with previous_response_id can suit shorter continuations; application-managed history gives your team control over what is replayed.
OpenAI’s conversation-state documentation says Response objects are saved for 30 days by default. Conversation objects and their items are not subject to that expiry. Choose a retention and deletion policy deliberately, and budget for growing context: previous input tokens remain billable when chaining responses.
Test the work around the model response
With Responses function calling, your application executes a requested function and returns a function_call_output with the matching call_id. Continue the loop until the task finishes; the first model response may only request a tool.
Validate arguments and permissions before execution. Test timeouts, multiple calls, and retries. If a tool creates a ticket or changes a record, use an application-level operation identifier to prevent the same business action being performed twice.
Update streaming consumers using the Responses event contract, including response.output_text.delta, response.completed, and error handling. Test connection loss and incomplete results as well. Showing partial text must not leave users believing an unfinished task succeeded.
Agree what “working again” means
Use a small, sanitised regression set covering a first request, continuation, document lookup, tool failure, retry, interrupted stream, and structured output where required. Check permissions, saved results, interface state, latency, and cost per completed task.
Release gradually where possible. The retired Assistants route cannot serve as a rollback; prepare a simpler working Responses route or a manual fallback. Finish with a named owner, useful error logs, and instructions support staff can follow.
If your team needs help turning this into a manageable recovery plan, talk to Greg about reviewing your OpenAI migration. Bring the affected workflow, current errors, and what you know about stored history; that gives the review a concrete starting point.
Related on GrN.dk
- AI automations need a spend dashboard before the first runaway bill
- OpenAI Responses API: The Assistants Migration Clock Has Run Out
- A Voice Agent Is Only Ready When the Human Handoff Works
Need help with this kind of work?
Review your OpenAI migration with Greg Get in touch with Greg.