Need Help: The assistant works on Playground but not via API

I uploaded a files to the assistant. The assistant works on Playground and got the right answer. when we tried the same question via API and it doesn’t find the right answer. Some time it works sometime it is not working

thread = client.beta.threads.create()
thread_message = client.beta.threads.messages.create(
            thread_id=thread.id,
            role="user",
            content=userQuery
        )
assistant_id ="Copied from Playground"
 run = client.beta.threads.runs.create(
            thread_id=thread.id,
            assistant_id=assistant_id,
            instructions=ass_instructions
        )

 run = client.beta.threads.runs.retrieve(
            thread_id=thread.id,
            run_id=run.id
        )

while run.status in ['queued', 'in_progress']:
            time.sleep(1)  # Wait for 1 second
            run = client.beta.threads.runs.retrieve(
                thread_id=thread.id,
                run_id=run.id
            )
            if run.status == 'completed':
                messages = client.beta.threads.messages.list(
                    thread_id=thread.id,
                )               
                messages = client.beta.threads.messages.list(
                    thread_id=thread.id)
                for message in messages.data:
                    if message.role == "assistant":
                        output = message.content[0].text.value                     
            elif run.status == 'cancelling':
                return JsonResponse({'message': "error", 'response':  "Error in assistants."})
            else:
                st = run.status

Sorted, i think it is due to latest updates in version.

i have passed latest version v2 in header

extra_headers={‘OpenAI-Beta’: ‘assistants=v2’}


 run = client.beta.threads.runs.create(
                thread_id=thread_id,
                assistant_id=assistant_id,
                extra_headers={'OpenAI-Beta': 'assistants=v2'}

            )
 run = client.beta.threads.runs.retrieve(
                thread_id=thread_id,
                run_id=run.id,
                extra_headers={'OpenAI-Beta': 'assistants=v2'}
            )
 while run.status in ['queued', 'in_progress']:
                time.sleep(1)  # Wait for 1 second
                run = client.beta.threads.runs.retrieve(
                    thread_id=thread_id,
                    run_id=run.id,
                    extra_headers={'OpenAI-Beta': 'assistants=v2'}
                )
                if run.status == 'completed':
                    messages = client.beta.threads.messages.list(
                        thread_id=thread_id,
                        extra_headers={'OpenAI-Beta': 'assistants=v2'}
                    )
                    # print(messages)
                    # List messages and get the response
                    messages = client.beta.threads.messages.list(
                        thread_id=thread_id,
                        extra_headers={'OpenAI-Beta': 'assistants=v2'})
                    for message in messages.data:
                        if message.role == "assistant":
                            output = message.content[0].text.value
                            save_assistants_log(
                                "\nAnswer: " + output, 'assistants_log.txt')
                            return JsonResponse({'message': "message", 'response': output})
                elif run.status == 'cancelling':
                    return JsonResponse({'message': "error", 'response':  "Error in assistants due to cancelling request."})
                else:
                    st = run.status

You can also move to the latest SDK versions which use the {‘OpenAI-Beta’: ‘assistants=v2’} header by default when you call client.beta